我已阅读优秀文档"Using the Knockout API"。 这解释了如何使用敲除绑定设置特定小部件的上下文。
现在我希望能够从Firebug命令行访问Java模型,就像我在浏览器中使用KnockoutJS在Javascript中访问ViewModel时通常所做的那样。 Firebug不知道" $ root",基本上我根本不知道怎样,以及是否可以访问Java模型并致电@功能方法。 那将是一个很酷的REPL。
答案 0 :(得分:1)
有ko.dataFor and ko.contextFor,可能更容易使用
Model = ko.dataFor(document.body);
答案 1 :(得分:0)
Sucess !!!
这就是诀窍,我创建了一个自定义绑定。在自定义绑定init()方法中,传递viewModel。然后我将模型保存到JavaScript变量中。
第1步:自定义绑定定义
@net.java.html.js.JavaScriptBody(
args = {}, body =
"ko.bindingHandlers.Model = {" +
"init: function( element, valueAccessor, allBindingsAccessor, viewModel ){" +
"Model = viewModel;" +
"}" +
"};"
)
public static native void registerModel();
步骤2:使用此data-bind声明页面中的div:
<div data-bind="Model"></div>
步骤3:在main,onPageLoad()中注册自定义绑定:
MyResource.registerModel();
MyResource.loadFirebug();
d.applyBindings();
步骤4:从Firebug控制台(Model ....)
访问模型可观察对象和方法也许有一种更优雅的方式直接对Firebug div进行数据绑定,但我还没有管理,也许是因为在调用applyBindings()之后Firebug是异步加载的。