我正在开发一个 Backbone 应用程序来显示从 Soundcloud 中提取的歌曲。我将搜索栏用作歌曲集合的过滤器。
结果是歌曲列表
var matched = results.filter(function(model) {
return model.attributes.title.toLowerCase().indexOf(val.toLowerCase()) > -1
});
results.reset(matched);
这很好用,当我打字时歌曲消失了。但是,一旦他们再次遇到搜索字符串,我正试图找到将它们添加回集合的方法。
此时,当我返回一个空的搜索字符串时,唯一显示的是搜索所达到的结果。
================== 编辑 ==================
这就是我最终做的
$("#query").on('focus', function(){
var history = results.clone();
$(this).on('keyup', function(){
var val = $(this).val();
var matched = history.filter(function(model) {
return model.get('title').toLowerCase().indexOf(val.toLowerCase()) > -1
});
results.reset(matched)
});