数据绑定="单击"不使用嵌套的淘汰视图模型

时间:2015-07-29 12:38:25

标签: javascript knockout.js

我有一个淘汰视图模型,它被设置为一个可观察的主视图模型。在子元素中,似乎我无法像在父元素中那样设置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很好(其他的挖掘可观察对象正常运行),按钮包含在<div data-bind="with: childElement"

编辑:here is a fiddle

1 个答案:

答案 0 :(得分:3)

您的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