0
我使用一個應用程序下面的代碼Knockout.js,但事情了我的注意有以下功能:怪異的行爲
this.filterLocations = ko.computed(function() {
return ko.utils.arrayFilter(self.locations(), function (loc) {
if(self.textFilter() != undefined){
self.hideMarkers();
return loc.title.toLowerCase().includes(self.textFilter().toLowerCase());
}else{
return true;
}
});
}, this);
我想打電話給在該self.hideMarkers()
else語句,但是當我用它else語句我得到了以下錯誤內:
Uncaught TypeError: self.hideMarkers is not a function
我想不通爲什麼會這樣,因爲在同一呼叫if語句沒有任何錯誤和工作精細。
功能碼是:
this.hideMarkers = function() {
for (var i = 0; i < self.markers.length; i++) {
var isIn = true;
for (var y = 0; y < self.filterLocations().length; y++) {
var el = self.filterLocations()[y];
if(el.id !== i + 1){
isIn = false;
}else{
isIn = true;
break;
}
}
if(isIn){
self.markers[i].setMap(map);
}else{
self.markers[i].setMap(null);
}
}
};
對此有何想法?
不知道實際的問題是什麼,但它看起來像我正在做各種各樣的東西*裏面*您的過濾方法,應該發生在外面... – user3297291
是的,因爲在這種情況下,我有項目顯示,還有一個標記列表,所以過濾器函數需要返回一個布爾值來過濾列表,但也調用方法過濾地圖中的標記 –