Rather then calling toArray, call method 'koData' fx
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 11 Apr 2013 22:28:01 +0200
branchfx
changeset 971545ffab9c29a
parent 970 8fefdd067b9e
child 972 fbabd1f33dda
Rather then calling toArray, call method 'koData'
javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/KOList.java
javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java
     1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/KOList.java	Thu Apr 11 21:25:54 2013 +0200
     1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/KOList.java	Thu Apr 11 22:28:01 2013 +0200
     1.3 @@ -142,6 +142,10 @@
     1.4      
     1.5      @JavaScriptOnly(name = "koArray", value = "function() { return this.toArray___3Ljava_lang_Object_2(); }")
     1.6      private static native int koArray();
     1.7 +    
     1.8 +    public Object koData() {
     1.9 +        return toArray();
    1.10 +    }
    1.11  
    1.12      private void notifyChange() {
    1.13          Knockout m = model;
     2.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java	Thu Apr 11 21:25:54 2013 +0200
     2.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java	Thu Apr 11 22:28:01 2013 +0200
     2.3 @@ -122,7 +122,7 @@
     2.4          + "  read: function() {"
     2.5          + "    try {"
     2.6          + "      var v = model[getter]();"
     2.7 -        + "      if (array) v = v.toArray();"
     2.8 +        + "      try { v = v.koData(); } catch (ignore) {};"
     2.9          + "      return v;"
    2.10          + "    } catch (e) {"
    2.11          + "      alert(\"Cannot call \" + getter + \" on \" + model + \" error: \" + e);"