我无法让绑定适用于嵌套数组。页面首次加载时值显示正确,但是当我进行编辑时,绑定对象不会更新。
我在这里创建了一个 jsfiddle:http: //jsfiddle.net/coverbeck/qCzT6/1/。
我的 HTML 是这样的:
<body>
<ul>
<!-- ko foreach: {data: cities, as: 'city'} -->
<li>
<input data-bind="value: city.name"/>
<span data-bind="text: city.name"></span>
</li>
<ul>
<!-- ko foreach: {data: neighborhoods, as: 'neighborhood'} -->
<li>
<input data-bind="value: neighborhood"/>
<span data-bind="text: neighborhood"></span>
</li>
<!-- /ko -->
</ul>
<!-- /ko -->
</ul>
</body>
我的 JavaScript 是:
var sf = {name: ko.observable('San Francisco'),
neighborhoods: ko.observableArray([
ko.observable('Haight'),
ko.observable('Bayview'),
ko.observable('Marina')
])
};
var ny = {name: ko.observable('New York'),
neighborhoods: ko.observableArray([
ko.observable('Hells Kitchen'),
ko.observable('Times Square')
])
};
var cities = ko.observableArray([sf, ny]);
var viewModel = { cities: cities };
ko.applyBindings(viewModel);
当我修改城市名称时,相应的 span 元素会更新。当我修改邻域名称时,相应的 span 元素不会更新。
我已经在这里问了一个类似的问题,并且答案有效。我似乎又遇到了同样的问题,除了这一次它是一个嵌套数组,我看到了这个问题。我尝试从该答案中针对嵌套数组进行修复,但在这种情况下似乎没有什么不同。
谢谢,
查尔斯