gpt4 book ai didi

javascript - 将我的搜索过滤器链接到列表项 : knockout js

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:56 24 4
gpt4 key购买 nike

我需要帮助链接我的 ul 和 li 以自动过滤搜索。我不知道从哪里开始。

self.filterMarkers = function() {
console.log(self.searchQuery);
var searchInput = self.searchQuery().toLowerCase();

self.visiblePlaces.removeAll();

self.allPlaces.forEach(function(place) {
console.log(place);
place.marker.setVisible(false);

if (placeName.toLowerCase().indexOf(searchInput) !== -1) {
self.visiblePlaces.push(place);
};
});

self.visiblePlaces().forEach(function(place) {
console.log(place);
place.marker.setVisible(true);
});
};

当我输入搜索输入时,我需要更新我的列表和标记。帮助?

最佳答案

如果您使用 ko.computed(callback,this),我编写了一个示例来向您展示其中一种可能的方法,希望对您有用 X)。

查看代码片段。

function ViewModel(){
var self =this;
this.filter = ko.observable();

this.places = ko.observableArray([{name:"New York"},{name:"Los Angeles"},{name:"Curitiba"},{name:"Rio de Janeiro"}]);


this.visiblePlaces = ko.computed(function(){
return this.places().filter(function(place){
if(!self.filter() || place.name.toLowerCase().indexOf(self.filter().toLowerCase()) !== -1)
return place;
});
},this);


}

ko.applyBindings(new ViewModel());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<label for="filter">Filter:</label>
<input id="filter" type="text" data-bind="textInput: filter"/>

<ul data-bind="foreach: visiblePlaces">
<li data-bind="text: name"></li>
</ul>

关于javascript - 将我的搜索过滤器链接到列表项 : knockout js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052926/

24 4 0
文章推荐: python - 由多个子进程锁定互斥体
文章推荐: linux - 当我导航到特定文件夹时如何在终端上自动运行命令?
文章推荐: python - 使用 minidom 获取指定 中的 HTML 链接