DukeScript:如何从 JavaScript 上下文访问 Java 模型?
DukeScript: how to access the Java model from the JavaScript context?
这与 and 有关。
我已经阅读了优秀的文档 "Using the Knockout API"。
这解释了上下文是如何设置具有敲除绑定的特定小部件的。
现在我希望能够从 Firebug 命令行访问 Java 模型,就像我通常在使用 KnockoutJS 在 Java 脚本中访问 ViewModel 时所做的那样在浏览器中。
Firebug 不知道“$root”,基本上我不知道如何访问 Java 模型并调用 @Function 方法,也不知道是否有可能。
这将是一个很酷的 REPL。
成功!!!
这是诀窍,我创建了一个自定义绑定。在自定义绑定 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 步:使用此数据绑定在页面中声明一个 div:
<div data-bind="Model"></div>
第三步:在main,onPageLoad()中注册自定义绑定:
MyResource.registerModel();
MyResource.loadFirebug();
d.applyBindings();
第 4 步:从 Firebug 控制台(模型....)访问您的模型可观察对象和方法
也许有一种更优雅的方法可以直接对 Firebug div 进行数据绑定,但我没有成功,可能是因为 Firebug 是异步加载的,在 applyBindings( ) 叫做。
有 ko.dataFor and ko.contextFor 可能更容易使用
Model = ko.dataFor(document.body);
这与
我已经阅读了优秀的文档 "Using the Knockout API"。 这解释了上下文是如何设置具有敲除绑定的特定小部件的。
现在我希望能够从 Firebug 命令行访问 Java 模型,就像我通常在使用 KnockoutJS 在 Java 脚本中访问 ViewModel 时所做的那样在浏览器中。 Firebug 不知道“$root”,基本上我不知道如何访问 Java 模型并调用 @Function 方法,也不知道是否有可能。 这将是一个很酷的 REPL。
成功!!!
这是诀窍,我创建了一个自定义绑定。在自定义绑定 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 步:使用此数据绑定在页面中声明一个 div:
<div data-bind="Model"></div>
第三步:在main,onPageLoad()中注册自定义绑定:
MyResource.registerModel();
MyResource.loadFirebug();
d.applyBindings();
第 4 步:从 Firebug 控制台(模型....)访问您的模型可观察对象和方法
也许有一种更优雅的方法可以直接对 Firebug div 进行数据绑定,但我没有成功,可能是因为 Firebug 是异步加载的,在 applyBindings( ) 叫做。
有 ko.dataFor and ko.contextFor 可能更容易使用
Model = ko.dataFor(document.body);