我做使用,使用标记来标记预定义位置,如列表中的谷歌地图API动态地图:GoogleMapsAPI - 创建标记筛选
self.locations = [{
name: 'Foxtrot',
lat: 38.713905,
lng: -9.1518868,
type: 'Bar'
}
它也有一个搜索栏,允许你可以根据位置名称进行过滤(filteredNav
)。它也应该过滤标记,但是...这是问题。
的建议,我有如下:
尝试写的console.log(self.location_array());.因为位置和 标记数据模式是不同的,你必须通过循环 self.location_array()通过调用标记对象上的setVisible(或setMap)来处理和查找要显示哪一个,哪一个 隐藏。
这是我的代码:
// Create observable array
self.nav = ko.observableArray(self.locations);
// Create empty observable string
self.filter = ko.observable('');
// Show nav and filter
self.filteredNav = ko.computed(function() {
var filter = self.filter().toLowerCase();
if (!filter) {
return self.nav();
}
return self.nav().filter(function(i) {
// Check for proper casing or lowercase
return i.name.toLowerCase().indexOf(filter) > -1 || i.name.indexOf(filter) > -1;
});
//THIS IS THE PROBLEM!
for (var i = 0; i < location_array()[i].length; i++) {
//??????
location_array()[i].setVisible(true);
}//?????
}
注:观察到阵列实现:vm.location_array()[i]
所以......问题是......我该怎么办循环?我不知道该怎么做......