5
次の例がうまくいかない理由を理解しようとしています。observableArrayに項目を追加すると、jQueryボタンの表示が更新されない
observableArrayは、(valueHasMutated()を使用して)変更されたことを手動で通知するまで更新されません。
私は観察対象の全体が、変更されたときにビューが自動的に更新されると考えました。
<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/
ありがとう、完璧に働いた。私は何かが欠けていたに違いないと知っていた。 – Rowan