我是ko的新人,但找不到解决我问题的方法。我尝试将我的可绑定属性组织到视图模型层次结构中。根据文档,在我看来以下方法应该有效,但事实并非如此。你有什么提示吗?

function AppViewModel() {
    this.nested = new NestedViewModel();
}

function NestedViewModel() {
    this.firstName = ko.observable();
     this.lastName = "Bertington";
}

ko.applyBindings(new AppViewModel());


并在这里使用:

<p data-bind="with: nested">

<p>First name: <input type="text" data-bind="value: firstName, valueUpdate: afterkeydown"></input></p>
<p>Last name: <strong data-bind="text: firstName"></strong></p>

</p>

最佳答案

您的HTML无效。您不能嵌套<p>元素。因此,浏览器会自动将结束标记生成为<p data-bind="with: nested"></p>

将外包装纸更换为例如<div>以使HTML有效并使脚本正常工作。

另外,它必须是valueUpdate: 'afterkeydown'(添加引号),否则删除会查找名为“ afterkeydown”的可观察到的东西。

这是一个工作示例:http://jsfiddle.net/JwWCc/1/

关于javascript - Knockout.js嵌套viewmodel不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11968972/

10-11 23:30