我正在尝试将新对象推送到我的knockout对象上的子对象数组中...并且我一直收到object is not a function
错误。
我的脚本看起来像......
function PageViewModel() {
var self = this;
self.story = ko.observable();
self.stories = ko.observableArray();
self.addTask = function () {
// this is where the error is occurring
self.story().Tasks.push(new { IsDone: false, Description: 'Test description' });
};
self.getStories = function () {
return $.ajax({
type: 'GET',
url: '@Url.Action("List", "Stories")',
success: getStoriesSuccess
});
};
function getStoriesSuccess(data) {
var mapping = {};
ko.mapping.fromJS(data.Stories, mapping, self.stories);
}
self.init = function () {
self.getStories();
ko.applyBindings(self);
};
}
如果我在Chrome中查看我的淘汰赛环境,我会将Tasks
属性视为Array[0]
。所有非Array属性都可以正常工作。
希望我只是简单地忽略了一些事情!
答案 0 :(得分:2)
这不是淘汰赛的错误。只需在控制台a = new {a: false, b: true}
中尝试即可获得此类错误。
您必须设置:
self.story().Tasks.push(new Object({
IsDone: false,
Description: 'Test description'
)});