Javascript 在集合中查找模型

Javascript 在集合中查找模型,javascript,backbone.js,underscore.js,Javascript,Backbone.js,Underscore.js,我有一组通过服务器调用添加到集合中的模型。我的所有模型都已添加,并正在跟踪到集合中。现在,我想要一种查找集合并基于模型中指定的id属性返回模型的方法。我不是说集合内置id。我指的是一个自定义id,它是集合中每个模型的一部分 所以我有这个。但是我的_detect函数并没有返回我想要的东西 var collection = Backbone.Collection.extend({ initialize: function( ) { _.bindAl

我有一组通过服务器调用添加到集合中的模型。我的所有模型都已添加,并正在跟踪到集合中。现在,我想要一种查找集合并基于模型中指定的id属性返回模型的方法。我不是说集合内置id。我指的是一个自定义id,它是集合中每个模型的一部分

所以我有这个。但是我的_detect函数并没有返回我想要的东西

    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!只是在这上面浪费了几个小时。我应该读过这些文件!