我正在试着找出为什么下面的例子不起作用。
直到(使用valueHasMutated() )手动通知observableArray已经更改,它才会更新。
我认为观察点的全部意义在于,当它改变时,视图会自动更新。
<button type='button' id='add'>add</button>
<button type='button' id='mutated'>force update</button>
<div id="short_tasks" data-bind="foreach: list">
<div data-bind="text: title"></div>
</div>JS:
var ListTest = function () {
this.list = ko.observableArray([{title: 'item1'}]);
}
var viewModel = new ListTest();
ko.applyBindings(viewModel);
$('#add').click(function () {
viewModel.list().push({title: 'new item'});
});
$('#mutated').click(function() {
viewModel.list.valueHasMutated();
});jsFiddle:http://jsfiddle.net/InsaneWookie/HFgbR/
发布于 2013-01-06 11:47:35
您可能希望直接在observableArray上调用push,这将把您的项推送到底层数组并通知所有订阅者。
viewModel.list.push({title: 'new item'});https://stackoverflow.com/questions/14178884
复制相似问题