我是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/