挖空.js嵌套视图模型不起作用

Knockout.js nested viewmodel doesn't work

本文关键字:模型 不起作用 视图 嵌套 js 挖空      更新时间:2023-09-26

我是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'(添加引号),否则 KNOCKOUT 会查找名为"afterkeydown"的可观察量。

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