我一直在学习淘汰赛约2个月,所以这可能是一个愚蠢的问题。我一直在尝试创建一个将通过文本输入过滤的列表。此过滤器还将同时隐藏/显示地图上的标记。我真的不知道我的问题是在淘汰赛方面还是html绑定方面。你能请我指出正确的方向吗?这是带有问题的代码的示例代码:
self.filteredPlaces = ko.computed(function() {
var filter = self.query().toLowerCase();
if (!filter) {
ko.utils.arrayForEach(self.markers(), function (item) {
item.setVisible(true);
//I used the console.log to verify that the info was being fetch
console.log(item.city);
});
return self.markers();
} else {
return ko.utils.arrayFilter(self.markers(), function(item) {
// set all markers visible (false)
var result = (item.city().toLowerCase().search(filter) >= 0);
item.setVisible(result);
return result;
});
}
});
此外,我还有一个指向小提琴设置here
的链接答案 0 :(得分:0)
您需要在ko.applyBindings(viewModel)
中调用initMap
来将挖空对象绑定到您的视图中。来自the documentation:
要激活Knockout,请将以下行添加到
<script>
块:ko.applyBindings(myViewModel);
此外,您需要subscribe
查询您的查询,以便在查询更改时执行操作。
对于高级用户,如果您想注册自己的订阅 如果被告知可观察的变化,您可以致电他们的订阅 功能。例如:
myViewModel.personName.subscribe(function(newValue) {
alert("The person's new name is " + newValue);
});