使用Knockout.js 3.2.0,我一直在争取成功绑定 observableArray ,并将其缩小到 绑定。 Foreach 没有问题,但 with 会引发错误 Uncaught ReferenceError:无法处理绑定“ :function(){return contactLists}“。
任何人都可以帮我理解发生了什么吗?
这有效:
<!-- ko foreach: contactLists -->
<p data-bind="text: title"></p>
<!-- /ko -->
这不是:
<!-- ko with: contactLists -->
<p data-bind="text: title"></p>
<!-- /ko -->
ko.observableArray 和 applyBindings 声明:
var viewModels = {
contactLists: ko.observableArray([new ContactList({title: "This Is List #1", subCount: 4321}), new ContactList({title: "List #2", subCount: 9876}), new ContactList({title: "jList #3", subCount: 1234})])
}
ko.applyBindings(viewModels);
非常感谢您的帮助!
答案 0 :(得分:0)
“with”绑定不适用于数组。您必须指定要工作的元素。例如:
<!-- ko foreach: contactLists -->
<!-- ko with: data -->
<p data-bind="text: gender"> </p>
<!-- /ko -->
<!-- /ko -->
function ContactList(data) {
this.title = data.title;
this.subCount = data.subCount;
}
var viewModels = {
contactLists: ko.observableArray([
{title: "This Is List #1", data: { subCount: 4321, gender: "male"}},
{title: "List #2", data: { subCount: 5321, gender: "female"}},
{title: "jList #3", data: { subCount: 1221, gender: "any"}}])
}
ko.applyBindings(viewModels);