我是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>
答案 0 :(得分:6)
您的HTML无效。您无法嵌套<p>
元素。因此,浏览器会自动生成结束标记<p data-bind="with: nested"></p>
。
用例如外包装替换外包装一个<div>
使HTML有效并且脚本有效。
此外,它必须是valueUpdate: 'afterkeydown'
(添加了引号),否则knockout会查找名为“afterkeydown”的可观察对象。
这是一个有效的演示:http://jsfiddle.net/JwWCc/1/