次のマークアップがあります。
<ul data-bind="foreach: nameList">
<li data-bind="text: $data"></li>
</ul>
<button data-bind="click: addname">add name</button>
Total names: <span data-bind="text: nameList().length"></span>
私のビューモデルは次のようになります。
var viewmodel = {
nameList: ko.observableArray(["Brian"]),
number: ko.observable(100),
addname: function(){
alert(this.nameList().length);
this.nameList().push("name");
alert(this.nameList().length);
}
};
ko.applyBindings(viewmodel);
addname メソッドが実行されるたびに、alert は nameList 配列を更新しますが、マークアップにはこれらの変更が反映されません。それで、それの何が問題なのですか?