javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java
branchfx
changeset 970 8fefdd067b9e
parent 969 df08556c5c7c
child 971 545ffab9c29a
     1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java	Thu Apr 11 20:44:46 2013 +0200
     1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java	Thu Apr 11 21:25:54 2013 +0200
     1.3 @@ -117,11 +117,13 @@
     1.4      ) {
     1.5          WebEngine e = web();
     1.6          JSObject bnd = (JSObject) e.executeScript("var x = {}; x.bnd = "
     1.7 -        + "new Function('ko', 'bindings', 'model', 'prop', 'getter', 'setter', 'primitive', '"
     1.8 +        + "new Function('ko', 'bindings', 'model', 'prop', 'getter', 'setter', 'primitive', 'array', '"
     1.9          + "var bnd = {"
    1.10          + "  read: function() {"
    1.11          + "    try {"
    1.12 -        + "      return model[getter]();"
    1.13 +        + "      var v = model[getter]();"
    1.14 +        + "      if (array) v = v.toArray();"
    1.15 +        + "      return v;"
    1.16          + "    } catch (e) {"
    1.17          + "      alert(\"Cannot call \" + getter + \" on \" + model + \" error: \" + e);"
    1.18          + "    }"
    1.19 @@ -137,7 +139,7 @@
    1.20          + "); x;");
    1.21          
    1.22          Object ko = e.executeScript("ko");
    1.23 -        bnd.call("bnd", ko, bindings, model, prop, strip(getter), strip(setter), primitive);
    1.24 +        bnd.call("bnd", ko, bindings, model, prop, strip(getter), strip(setter), primitive, array);
    1.25          LOG.log(Level.FINE, "binding defined for {0}: {1}", new Object[]{prop, ((JSObject)bindings).getMember(prop)});
    1.26      }
    1.27