1

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

我怎么在淘汰赛中做到这一点?我应该将原始用户列表保存在哪里?我应该如何过滤可观察数组?

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

var groupsViewModelClass = function () {
var self = this;
ko.mapping.fromJS({
    assignedPermissions: [],
    avilablePermissions: [],
    usersWithGroups: [],
    allGroups: []
}, {}, self);
}

谢谢

4

1 回答 1

2

你可以使用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);

另见:http ://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html

于 2012-06-03T08:45:58.613 回答