Javascript 在集合中查找模型
我有一组通过服务器调用添加到集合中的模型。我的所有模型都已添加,并正在跟踪到集合中。现在,我想要一种查找集合并基于模型中指定的id属性返回模型的方法。我不是说集合内置id。我指的是一个自定义id,它是集合中每个模型的一部分 所以我有这个。但是我的_detect函数并没有返回我想要的东西Javascript 在集合中查找模型,javascript,backbone.js,underscore.js,Javascript,Backbone.js,Underscore.js,我有一组通过服务器调用添加到集合中的模型。我的所有模型都已添加,并正在跟踪到集合中。现在,我想要一种查找集合并基于模型中指定的id属性返回模型的方法。我不是说集合内置id。我指的是一个自定义id,它是集合中每个模型的一部分 所以我有这个。但是我的_detect函数并没有返回我想要的东西 var collection = Backbone.Collection.extend({ initialize: function( ) { _.bindAl
var collection = Backbone.Collection.extend({
initialize: function( ) {
_.bindAll(this);
this.bind('add', this.modelIsAddedd);
this.serverCall();
},
modelIsAddedd: function(model){
console.log('model = ', model);
},
getModelByCustomID: function( id ){
var model = this.detect( id, function( model ){ return model });
},
serverCall: function(){
$.ajax({
my ajax call with success and error
});
},
onSuccess: function(response){
this.add(response.data);
}
});
});
好吧,我想出来了,以防其他人需要答案
getModelByCustomID: function( id ){
var model = this.detect( function( model ){
return model.get('customIDName') == id;
});
},
此自定义id在系统中的所有型号中都是唯一的吗?您可以通过
idAttribute
将其设置为模型的id
吗?是的,customID对于集合中的每个模型都是唯一的。仅供参考:如果您将模型的idAttribute
属性设置为“customIDName”
,则您需要的是现成的,您不仅可以方便地使用myModel.id
作为myModel.get('customIDName')
的快捷方式,还可以使用超级快速、基于哈希的(您在这里发明的)。我不知道您可以设置model.idAttribute=“customID”GENIUS!只是在这上面浪费了几个小时。我应该读过这些文件!