首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DukeScript:如何从JavaScript上下文访问JavaScript模型?

DukeScript:如何从JavaScript上下文访问JavaScript模型?
EN

Stack Overflow用户
提问于 2015-06-04 00:03:51
回答 2查看 459关注 0票数 0

这与12有关。

我读过优秀的文档“使用Knockout API”。这说明了上下文是如何设置一个具有敲除绑定的特定小部件的。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-08 00:00:26

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

票数 1
EN

Stack Overflow用户

发布于 2015-06-04 01:07:31

成功!

诀窍是,我创建了一个自定义绑定。在定制绑定init()方法中,传递viewModel。然后,我将模型保存到一个JavaScript变量中。

步骤1:自定义绑定定义

代码语言:javascript
复制
  @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:

代码语言:javascript
复制
<div data-bind="Model"></div>

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

代码语言:javascript
复制
    MyResource.registerModel();
    MyResource.loadFirebug();
    d.applyBindings();

步骤4:从Firebug控制台( model .)访问您的模型可观察性和方法

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30632856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档