Mvvm 无法调用方法';推动';未定义的
我把它放在一把小提琴上工作得很好(我现在找不到),但是当我把它移到VS2012时,我得到了一个错误“无法调用undefined的‘push’方法” 在下面的代码中,createItemDiv()函数工作得很好,并创建了UI元素。前面的一行showItem()调用了this.visibleItem.push(),引发了错误。我最初在小提琴中遇到了这个问题,并添加了“this”来修复它。如果我现在删除“this”,我会得到“visibleItem未定义”“ viewmodel.jsMvvm 无法调用方法';推动';未定义的,mvvm,knockout.js,Mvvm,Knockout.js,我把它放在一把小提琴上工作得很好(我现在找不到),但是当我把它移到VS2012时,我得到了一个错误“无法调用undefined的‘push’方法” 在下面的代码中,createItemDiv()函数工作得很好,并创建了UI元素。前面的一行showItem()调用了this.visibleItem.push(),引发了错误。我最初在小提琴中遇到了这个问题,并添加了“this”来修复它。如果我现在删除“this”,我会得到“visibleItem未定义”“ viewmodel.js var dumm
var dummyResults = [
{ //sample data is here }
]
var dummyItems = [
]
function VisibleItem(data) {
var self = this;
this.name = ko.observable(data.name);
this.type = ko.observable(data.type);
this.description = ko.observable("");
}
function SearchResult(data) {
var self = this;
this.name = ko.observable(data.name);
this.type = ko.observable(data.type);
}
var viewModel = {
searchResult: ko.observableArray(ko.utils.arrayMap(dummyResults, function (item) {
return new SearchResult(item);
})),
visibleItem: ko.observableArray(ko.utils.arrayMap(dummyItems, function (item) {
return new VisibleItem(item);
})),
showItem: function (item) {
this.visibleItem.push(item);
}
};
ko.applyBindings(viewModel);
$(document).on('click', '.result', function () {
var item = ko.dataFor(this);
viewModel.showItem(item); //add item to "visibleItems" viewmodel for management
createItemDiv(item); //ui function to show item on screen
});
site.js
var dummyResults = [
{ //sample data is here }
]
var dummyItems = [
]
function VisibleItem(data) {
var self = this;
this.name = ko.observable(data.name);
this.type = ko.observable(data.type);
this.description = ko.observable("");
}
function SearchResult(data) {
var self = this;
this.name = ko.observable(data.name);
this.type = ko.observable(data.type);
}
var viewModel = {
searchResult: ko.observableArray(ko.utils.arrayMap(dummyResults, function (item) {
return new SearchResult(item);
})),
visibleItem: ko.observableArray(ko.utils.arrayMap(dummyItems, function (item) {
return new VisibleItem(item);
})),
showItem: function (item) {
this.visibleItem.push(item);
}
};
ko.applyBindings(viewModel);
$(document).on('click', '.result', function () {
var item = ko.dataFor(this);
viewModel.showItem(item); //add item to "visibleItems" viewmodel for management
createItemDiv(item); //ui function to show item on screen
});
试试这个:
var viewModel = function() {
var self = this;
self.searchResult = ko.observableArray(ko.utils.arrayMap(dummyResults, function (item) {
return new SearchResult(item);
})),
self.visibleItem = ko.observableArray(ko.utils.arrayMap(dummyItems, function (item) {
return new VisibleItem(item);
})),
self.showItem = function (item) {
self.visibleItem.push(item);
}
};
试试这个:
var viewModel = function() {
var self = this;
self.searchResult = ko.observableArray(ko.utils.arrayMap(dummyResults, function (item) {
return new SearchResult(item);
})),
self.visibleItem = ko.observableArray(ko.utils.arrayMap(dummyItems, function (item) {
return new VisibleItem(item);
})),
self.showItem = function (item) {
self.visibleItem.push(item);
}
};
我刚刚意识到我的html中还有一个旧的绑定。。。将投票关闭。我刚刚意识到我的html中还有一个旧绑定。。。将投票关闭。未捕获错误:无法分析绑定。消息:ReferenceError:未定义searchResult;绑定值:foreach:SearchResultUnCapture错误:无法分析绑定。消息:ReferenceError:未定义searchResult;Bindings value:foreach:SearchResultt这是您的问题您可以删除它,但不要只是提交您的解决方案,只是为了警告人们不要像您这样做,如果其他人已经回答,您不能删除。这是您的问题,您可以删除它,但不要只是提交您的解决方案,只是为了警告人们不要像你一样,如果其他人回答了,你就不能删除。