0
我有這樣的視圖模型和功能將數據添加到它,動態將數據添加到observableArray
function viewModel() {
this.loadData = function() {
this.Items().push('X');
this.Items().push('Y');
};
this.Items = ko.observableArray(['A', 'B']);
}
var vm = new viewModel();
ko.applyBindings(vm);
vm.loadData();
alert(vm.Items());
我想打印出的項目數組中的值,但X和Y從不顯示。儘管警報彈出了A,B,X和Y.我做錯了什麼?
<div data-bind="foreach: {data: Items, as: 'item' }">
<span data-bind="text: item"></span>
</div>
謝謝。
我有點困惑何時使用this.Items和何時使用this.Items()?我以爲我應該總是使用Items() - 我昨天發佈了類似的問題,http://stackoverflow.com/questions/14992898/observable-object-not-displaying-some-properties – user471317 2013-02-21 18:31:43
當你想要時使用'this.Items'當你改變數組的內容時,KnockOut會發生'魔術'('this.Items' * *看起來像一個數組,但不是真的;它是一個模仿數組的特殊的KnockOut類型;'this.Items() '返回存儲數據的實際數組,但這不是'魔術')。你的另一個問題使用可觀察的而不是可觀察的數組,這是兩個不同的事情。 – robertklep 2013-02-21 18:42:49