2013-05-15 51 views
2

我只是努力使用下劃線與骨幹收集。骨幹不能使用「this」?

var collection=Backbone.Collection.extend({ 
model:someModel, 
getModelEntry : function(id){ 
return this.get(id); 

//returns undefined 
} 
}) 

嘗試2:

var collection=Backbone.Collection.extend({ 
    model:someModel, 
    getModelEntry : function(id){ 
    var model = this.where({id:id})[0]; 
    //here I got model 
    return model.get("attr"); 
    //returns undefined 
    } 
    }); 

什麼錯在收集使用get?

get正在實例中運行完美!

var coll=new collection; 

coll.get(id); //working fine 
+0

嗯,這是奇怪的,我做了一個快速的jsfiddle和它的作品:小提琴(http://jsfiddle.net/y7gDN/)(檢查控制檯輸出)。 – Ingro

+0

'coll.getModelEntry(id)'返回'undefined'?很奇怪.. –

+0

檢查你的骨幹模型的idAttribute沒有被設置爲別的東西而不是id? – jbl

回答

0

工作正常,因爲我可以看到。檢查您要查找的模型的ID是否存在於您的收藏中。添加類似下面看看會發生什麼

getModelEntry : function(id){    
      var model = this.get(id); 
      if(model == undefined) { 
       console.log("id: ",id); 
       console.log("collection: ",JSON.stringify(this.models)); 
      } else { 
       console.log(model.get('name'));     
      }   
     }