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