【问题标题】:data-bind="click" not working with nested knockout view modeldata-bind="click" 不适用于嵌套剔除视图模型
【发布时间】:2015-10-21 20:07:51
【问题描述】:

我有一个淘汰视图模型,它被设置为我的主视图模型的 observable。在子元素中,似乎无法像在父元素中那样设置data-bind="click:

我的html:

 <button id="myButton" type="button" class="btn btn-lg btn-primary" data-bind="click: test">Click Me</button>

在我的主视图模型中:

 self.childElement = ko.observable(new childElementVm());

childElementVm

var childElementVm= function () {
    var test = function(){
        alert('this is a test');
    }
}

在此处使用data-bind="click: test" 我需要做些什么不同的事情? 需要注意的是,我的 applyBindings 很好(其他敲除 observables 运行正常)并且按钮包含在 &lt;div data-bind="with: childElement"

编辑:here is a fiddle

【问题讨论】:

  • 你能制作小提琴吗?
  • 你的函数test是私有的。

标签: javascript knockout.js


【解决方案1】:

您的test 函数的范围仅限于childElementVm。将您的实现更改为:

var childElementVm= function () {
    this.test = function(){
        alert('this is a test');
    }
}

或者这个:

var childElementVm= function () {
    var self = this;
    self.test = function(){
        alert('this is a test');
    }
}

这是一个有效的example

【讨论】:

  • 你能看看我的小提琴吗?为什么我的还是不行?
  • @USER_8675309 您没有将淘汰赛加载为外部资源。我已经更新了它并使用更新的链接编辑了您的问题。顺便说一句
  • 非常感谢。我现在知道了。我试图通过data-bind="with: childElement.test" 来使其工作,而不是
  • @USER_8675309 没问题,哥们,很高兴我能帮上忙:)
猜你喜欢
  • 1970-01-01
  • 2017-09-01
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
相关资源
最近更新 更多