初始化可观察数组时传递的参数必须是数组,或null或未定义

时间:2017-08-11 06:54:45

标签: javascript arrays knockout.js

我是新手敲门我得到了错误“初始化一个可观察数组时传递的参数必须是一个数组,或者是null,或者是未定义。我不知道如何解决它。任何人都可以帮助我请。

 viewModel = function ()
 {
    var self = this;
    self.rows = ko.observableArray([]);
    self.items = ko.observableArray(childData.items);
    self.otherCharges = ko.observableArray(childData.otherCharges);
    self.add = function (type) {

        var entry = new Entry({});
         entry.SNo(VMRows().length);
        entry.Type(type);
        self.rows.push(entry);

    };

    self.remove = function (entry) {
        self.rows.remove(entry);
        i = 0;
        ko.utils.arrayForEach(VMRows, function (e) {
            e.SNo(i++);
        });
    };

};
VM[container] = new viewModel();

var VMRows = VM[container].rows;

1 个答案:

答案 0 :(得分:3)

消息非常明确:您已将值传递给ko.observableArray,而不是数组,nullundefined。这告诉我们childData.itemschildData.otherCharges不是数组,不是null,而不是undefined。其中至少有一个是其他值。 (显然我无法告诉你哪个;你还没有告诉我们childData是什么。)