javascript - 在 Backbone.js 中按子字符串过滤集合

标签 javascript backbone.js underscore.js

如果我想为一个集合做自动完成,最好的方法是什么?我想查看搜索字符串是否在我的模型中的任何(或选定的几个)属性中。

我在想类似的东西

this.collection.filter(function(model) {
    return model.values().contains($('input.search]').val());
})

编辑 对不起,我一定解释得不够好。如果我有一个带有属性的集合......

[ 
  { first: 'John', last: 'Doe'}, 
  { first: 'Mary', last: 'Jane'} 
]

我想在搜索中输入 a,捕获 keyup 事件,然后过滤掉 { first: 'Mary', last: 'Jane'},如John 和 Doe 都不包含 a

最佳答案

你可以查看模型的属性来做这样的事情......

var search = $('input.search]').val();
this.collection.filter(function(model) {
    return _.any(model.attributes, function(val, attr) {
        // do your comparison of the value here, whatever you need
        return ~val.indexOf(search);
    });;
});

关于javascript - 在 Backbone.js 中按子字符串过滤集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18112627/

相关文章:

backbone.js - 如何在我的主干 View 中绑定(bind) Bootstrap 提前输入的数据源?

Backbone.js 集合更新插入?

javascript - 如何在 Javascript 中设置随机生成的元素列表的样式

Javascript无限类别深度树

javascript - 使用下划线替换或推送数组中的对象

javascript - 如何在 colspan td 中与 td 的 th 宽度相同

javascript - $lookup 搜索 Mongodb

javascript - input type=submit 被div包含时不提交

javascript - 即使使用 'on' 之后,JQuery 也无法识别通过主干 View 添加的元素

javascript - 过滤器将 bool 值更改为字符串 - angularjs