diff -r e3885c6261b6 api.knockout/apichanges.xml --- a/api.knockout/apichanges.xml Wed Mar 11 11:36:52 2015 +0000 +++ b/api.knockout/apichanges.xml Wed Mar 11 16:29:03 2015 +0100 @@ -57,6 +57,20 @@ + + + Introducing Bindings.function(String name) + + + + + +

+ Added method Bindings.function(String name) which generates an empty function property. +

+
+ +
Introduced diff -r e3885c6261b6 api.knockout/manifest.mf --- a/api.knockout/manifest.mf Wed Mar 11 11:36:52 2015 +0000 +++ b/api.knockout/manifest.mf Wed Mar 11 16:29:03 2015 +0100 @@ -1,5 +1,5 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.api.knockout OpenIDE-Module-Localizing-Bundle: org/netbeans/spi/knockout/Bundle.properties -OpenIDE-Module-Specification-Version: 1.0 +OpenIDE-Module-Specification-Version: 1.1 AutoUpdate-Show-In-Client: false diff -r e3885c6261b6 api.knockout/src/org/netbeans/spi/knockout/Bindings.java --- a/api.knockout/src/org/netbeans/spi/knockout/Bindings.java Wed Mar 11 11:36:52 2015 +0000 +++ b/api.knockout/src/org/netbeans/spi/knockout/Bindings.java Wed Mar 11 16:29:03 2015 +0100 @@ -148,6 +148,19 @@ return this; } + /** + * Generates a function (empty) into the JSON class. + * + * @param name name of variable (must be valid JavaScript identifier) + * @return this object + * + * @since 1.1 + */ + public final Bindings function(String name) { + addProp(name, false, "function() {}"); + return this; + } + final String generate() { StringBuilder sb = new StringBuilder(); //sb.append("(function() {\n"); diff -r e3885c6261b6 api.knockout/test/unit/src/org/netbeans/spi/knockout/BindingsNGTest.java --- a/api.knockout/test/unit/src/org/netbeans/spi/knockout/BindingsNGTest.java Wed Mar 11 11:36:52 2015 +0000 +++ b/api.knockout/test/unit/src/org/netbeans/spi/knockout/BindingsNGTest.java Wed Mar 11 16:29:03 2015 +0100 @@ -91,6 +91,20 @@ assertEquals(eng.eval("ko.value.currentTweets[0].from_user_id"), 0d, "Boolean values are set to true"); } + @Test + public void generateModelWithFunctions() throws Exception { + Bindings myModel = Bindings.create("MyModel"). + function("myFunc1"). + function("func2"); + + String txt = myModel.generate(); + assertValidJS(txt); + assertNotNull(eng.eval("ko")); + assertNotNull(eng.eval("ko.value")); + assertNotNull(eng.eval("ko.value.myFunc1")); + assertNotNull(eng.eval("ko.value.func2")); + } + private void assertValidJS(String txt) { assertNotNull(txt, "We have some script"); try {