Javascript Backbone.js中的筛选模型(非集合)
我想知道是否可以像如何过滤集合那样过滤模型 我正在做一个体育网站的搜索功能,我想能够过滤的类型,即足球,网球,篮球,游泳,体育等搜索结果 这是我的代码(请检查Javascript Backbone.js中的筛选模型(非集合),javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我想知道是否可以像如何过滤集合那样过滤模型 我正在做一个体育网站的搜索功能,我想能够过滤的类型,即足球,网球,篮球,游泳,体育等搜索结果 这是我的代码(请检查filterSearch()方法): JSON: 对于这种情况,您使用模型而不是主干集合是否有特定的原因?您可以轻松获得单个搜索结果的模型: var searchResult = Backbone.Model.extend({}); 和一个集合来表示搜索 var Search = Backbone.Collection.extend({
filterSearch()
方法):
JSON:
对于这种情况,您使用模型而不是主干集合是否有特定的原因?您可以轻松获得单个搜索结果的模型:
var searchResult = Backbone.Model.extend({});
和一个集合来表示搜索
var Search = Backbone.Collection.extend({
model : searchResult,
urlRoot: '/search',
filterSearch: function(type) {
return this.where({'type' : type});
},
parse: function(response) {
return response.search;
}
});
否则,只需搜索模型中提供的数组:
能否提供一个JSON示例,说明搜索api的结果是什么样的?您要过滤的内容还不清楚。@ne8il,谢谢您的回复。由于我所在地的数据保护法,我无法显示我使用的json。但我已经包括了一个类似的和更简单的版本,我已经做了,上面…JSON看起来更像一个集合而不是一个模型。你为什么不使用一个集合,用
parse
方法来打开JSON的search
部分呢?同意。除非此响应中包含的不仅仅是搜索,否则这应该是一个集合。如果问题是如何将其放入集合中,只需重写集合上的parse,将搜索数组设置为集合数据。@kinakuta,是的,响应中不仅仅有搜索,但我只对搜索感兴趣。另外,我没有构建主干代码,它已经存在了,在期限紧迫的情况下进行重构会太多,等等……谢谢你。使用模型而不是集合的原因是因为我没有从一开始就编写代码,而且由于时间紧迫等原因,重构太多了。。。我会试试你的解决方案,希望它会好起来。
var searchResult = Backbone.Model.extend({});
var Search = Backbone.Collection.extend({
model : searchResult,
urlRoot: '/search',
filterSearch: function(type) {
return this.where({'type' : type});
},
parse: function(response) {
return response.search;
}
});
filterSearch: function(type) {
return _.where(this.get('search'), {'type' : type});
}