Javascript 过滤绑定到knocout.js模型中可观察数组的用户列表视图
我的模型中有一个可观察的数组,它只绑定到视图中的一个div列表,我想在该列表上方创建一个文本框,它将过滤掉用户,就像我写的那样:“admin”将只显示名为admin的用户 在淘汰赛中我该怎么做?我应该将原始用户列表保存在哪里? 我应该如何过滤可观测阵列 我的模型如下所示: 可观测数组是usersWithGroupsJavascript 过滤绑定到knocout.js模型中可观察数组的用户列表视图,javascript,knockout.js,Javascript,Knockout.js,我的模型中有一个可观察的数组,它只绑定到视图中的一个div列表,我想在该列表上方创建一个文本框,它将过滤掉用户,就像我写的那样:“admin”将只显示名为admin的用户 在淘汰赛中我该怎么做?我应该将原始用户列表保存在哪里? 我应该如何过滤可观测阵列 我的模型如下所示: 可观测数组是usersWithGroups var groupsViewModelClass = function () { var self = this; ko.mapping.fromJS({ assignedP
var groupsViewModelClass = function () {
var self = this;
ko.mapping.fromJS({
assignedPermissions: [],
avilablePermissions: [],
usersWithGroups: [],
allGroups: []
}, {}, self);
}
谢谢您可以使用
ko.utils.arrayFilter
函数
例如:
//filter the items using the filter text
viewModel.filteredItems = ko.computed(function() {
var filter = this.filter().toLowerCase();
if (!filter) {
return this.items();
} else {
return ko.utils.arrayFilter(this.items(), function(item) {
return ko.utils.stringStartsWith(item.name().toLowerCase(), filter);
});
}
}, viewModel);
另请参见:注意:
ko.utils.stringStartsWith
不会在缩小的ko文件中导出。虽然代码很简单,但可以复制。这是怎么回事?ko.utils.stringStartsWith
仅用作可与arrayFilter
一起使用的函数示例。其主要思想是arrayFilter
中的函数必须检查集合中每个项的布尔条件,并返回true
或false