0

这与12相关。

我已经阅读了优秀的文档“Using the Knockout API”。这解释了上下文是如何设置具有敲除绑定的特定小部件的。

现在我希望能够从 Firebug 命令行访问 Java 模型,就像我在浏览器中使用 KnockoutJS 访问 Javascript 中的 ViewModel 时通常所做的那样。Firebug 不知道“$root”,基本上我不知道如何以及是否有可能完全访问 Java 模型并调用 @Function 方法。这将是一个很酷的 REPL。

4

2 回答 2

1

ko.dataFor 和 ko.contextFor可能更容易使用 Model = ko.dataFor(document.body);

于 2015-06-08T00:00:26.130 回答
0

成功!!!

这是诀窍,我创建了一个自定义绑定。在自定义绑定 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>

步骤 3:在 main,onPageLoad() 中注册自定义绑定:

    MyResource.registerModel();
    MyResource.loadFirebug();
    d.applyBindings();

第 4 步:从 Firebug 控制台(Model....)访问您的模型 observables 和方法

也许有一种更优雅的方法可以直接对 Firebug div 进行数据绑定,但我没有管理,可能是因为 Firebug 是异步加载的,所以在调用 applyBindings() 之后。

在此处输入图像描述

于 2015-06-04T01:07:31.213 回答