过滤功能:使用KO挣扎
Filtering function: use KO struggling
尝试转换此代码:
.JS:
self.filter = function() {
var s = $('#searchField').val();
console.log(s.toLowerCase().replace(/'b[a-z]/g,"KC"));
s = s.toLowerCase().replace(/'b[a-z]/g, function(self) {
console.log(self.toUpperCase());
return self.toUpperCase();
});
$(".locationList > li").each(function() {
console.log(this);
$(this).text().search(s) > -1 ? $(this).show() : $(this).hide();
});
for(var i = 0; i < self.placeList().length; i++) {
console.log(self.map);
self.placeList()[i].marker.setMap(self.placeList()[i].marker.title.search(s) > -1 ? map : null);
}
};
};
.HTML:
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
<input id="searchField" data-bind="event: {keyup: filter}" type="text" placeholder='search by name or city' value="">
<hr>
<ul class="locationList" data-bind="foreach: placeList">
<li>
...
像这样:
爪哇语
self.filterText = ko.observable("");
self.filteredList = ko.computed(function(){
var filter = self.filterText().toLowerCase();
return // your filter function. make sure you return an array of what you want!
}, this);
您应该在中继器中的 li-tag 上使用可见绑定。然后直接隐藏不符合条件的项目。像这样:
<ul data-bind="foreach:placeList">
<li data-bind="text:$data, visible: filter"></li>
</ul>
相关文章:
- jquery数据表的自定义ko绑定
- ko.com在foreach$data变量上添加了write函数
- 如何使双输入可写ko.computed
- 从对象内部调用knockout.js ko.applyBindings()
- 淘汰赛JS;绑定值未更新或 ko.computed() 未更新
- ko observablearray:推送和直接分配之间的区别
- KO 绑定复选框:从代码更改“选中”属性,不更改可观察字段
- 将 d3 演示中的圆圈和文本替换为包含自定义 HTML 和 ko 绑定的 foreignObject
- KNOCKOUT ko.observableArray 不会刷新视图
- 如何迭代ko.OberableArray
- 在ko.applyBindings(..)中执行Knockout js订阅函数(用于可观察对象)
- 防止拖动上的ko点击绑定
- 如何刷新'选项'ko多选组件中的绑定
- knockoutjs undo ko.mapping.fromJS
- KnockoutJS 通过 ko.utils.extend 继承功能
- 调用ko.applyBindings后,向Knockout视图模型添加新属性
- Knockout mapping用于ko.mapping.toJSON()的选项-方法
- 将 a ko.observable 更改为 ko.computed,反之亦然
- KO网格无法保存编辑单元格中的数据-使用Plunker
- 过滤功能:使用KO挣扎