动态添加数据到observableArray

时间:2013-02-21 17:50:20

标签: knockout.js

我有这个viewmodel和一个向其添加数据的函数,

        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());

我正在尝试打印Items数组中的值,但是从不显示X和Y.虽然警报弹出A,B,X和Y.我做错了什么?

    <div data-bind="foreach: {data: Items, as: 'item' }">
        <span data-bind="text: item"></span>
    </div>          

感谢。

2 个答案:

答案 0 :(得分:1)

this.Items()公开ko.observableArray()的基础数组,这只是一个普通的数组。你需要使用这个:

this.Items.push('X');
this.Items.push('Y');

demo

答案 1 :(得分:0)

您应该将数据直接推送到this.Items。

this.Items()返回observableArray的内容。