# HG changeset patch # User Jaroslav Tulach # Date 1365708354 -7200 # Node ID 8fefdd067b9efc2a9c595182cab15d5bba42a765 # Parent df08556c5c7cfd55eee01d44d46029028c181f6c Can iterate over arrays diff -r df08556c5c7c -r 8fefdd067b9e javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java Thu Apr 11 20:44:46 2013 +0200 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java Thu Apr 11 21:25:54 2013 +0200 @@ -117,11 +117,13 @@ ) { WebEngine e = web(); JSObject bnd = (JSObject) e.executeScript("var x = {}; x.bnd = " - + "new Function('ko', 'bindings', 'model', 'prop', 'getter', 'setter', 'primitive', '" + + "new Function('ko', 'bindings', 'model', 'prop', 'getter', 'setter', 'primitive', 'array', '" + "var bnd = {" + " read: function() {" + " try {" - + " return model[getter]();" + + " var v = model[getter]();" + + " if (array) v = v.toArray();" + + " return v;" + " } catch (e) {" + " alert(\"Cannot call \" + getter + \" on \" + model + \" error: \" + e);" + " }" @@ -137,7 +139,7 @@ + "); x;"); Object ko = e.executeScript("ko"); - bnd.call("bnd", ko, bindings, model, prop, strip(getter), strip(setter), primitive); + bnd.call("bnd", ko, bindings, model, prop, strip(getter), strip(setter), primitive, array); LOG.log(Level.FINE, "binding defined for {0}: {1}", new Object[]{prop, ((JSObject)bindings).getMember(prop)}); }