我一直在研究动态数据绑定的淘汰赛,并且我遇到了需要一个可观察数组来包含多个可观察对象的情况。
这是我的代码:
<ul data-bind="foreach: { data: categories, as: 'category' }">
<li>
<ul data-bind="foreach: { data: items, as: 'item' }">
<li>
<span data-bind="text: category.name"></span>:
<span data-bind="text: item"></span>
<input type="text" data-bind="value: item"/>
</li>
</ul>
</li>
</ul>
$(document).ready(function () {
ko.applyBindings(viewModel);
});
var viewModel = {
categories: ko.observableArray([
{ name: 'Fruit', items: [ko.observable('Apple'), ko.observable('Orange'), ko.observable('Banana')] },
{ name: 'Vegetables', items: [ko.observable('Celery'), ko.observable('Corn'), ko.observable('Spinach')] }
])
};
使用 oject observables 时,通常我可以修改输入文本框的值,并将该值设置为用于显示该属性的整个页面。
在我当前的示例中,我尝试对我的输入框做同样的事情,但是在我修改了文本框中的值之后,跨度没有达到当前值。
如果它们是独立的可观察对象,如何使 observableArray 中的可观察对象表现得像它们一样?