Knockout.js嵌套的viewmodel不起作用

kat*_*aik 1 javascript knockout.js

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

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

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

ko.applyBindings(new AppViewModel());
Run Code Online (Sandbox Code Playgroud)

并在这里使用:

<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>
Run Code Online (Sandbox Code Playgroud)

Nik*_*iko 6

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

用例如a替换外包装<div>以使HTML有效并且脚本有效.

此外,它需要valueUpdate: 'afterkeydown'(添加引号),否则knockout会查找名为"afterkeydown"的可观察对象.

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