Javascript 过滤绑定到knocout.js模型中可观察数组的用户列表视图

Javascript 过滤绑定到knocout.js模型中可观察数组的用户列表视图,javascript,knockout.js,Javascript,Knockout.js,我的模型中有一个可观察的数组,它只绑定到视图中的一个div列表,我想在该列表上方创建一个文本框,它将过滤掉用户,就像我写的那样:“admin”将只显示名为admin的用户 在淘汰赛中我该怎么做?我应该将原始用户列表保存在哪里? 我应该如何过滤可观测阵列 我的模型如下所示: 可观测数组是usersWithGroups var groupsViewModelClass = function () { var self = this; ko.mapping.fromJS({ assignedP

我的模型中有一个可观察的数组,它只绑定到视图中的一个div列表,我想在该列表上方创建一个文本框,它将过滤掉用户,就像我写的那样:“admin”将只显示名为admin的用户

在淘汰赛中我该怎么做?我应该将原始用户列表保存在哪里? 我应该如何过滤可观测阵列

我的模型如下所示: 可观测数组是usersWithGroups

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