2014-10-29 78 views
1

我有一個奇怪的錯誤,其中函數(鈦合金,有點同質)返回空,而fetch方法返回模型列表。伊夫檢查了一遍又一遍,我試圖把其中函數的獲取方法的成功回調,但它仍然會導致一個無法解決的錯誤Backbone在獲取回調中返回空

Alloy.Collections.favorites.fetch({ 
    success: function(collection) { 
      console.log(JSON.stringify(collection)); 
      console.log(self.get('id')); 
      var favorite = collection.where({ 
       jobId: self.get('id') 
      }); 
      console.log(JSON.stringify(favorite)); 
}); 

以上輸出是:

[{"jobId":5162179,"dateAdded":1414590144,"candidateId":99,"id":19},{"jobId":5161302,"dateAdded":1414588983,"candidateId":99,"id":17},{"jobId":5161437,"dateAdded":1414588785,"candidateId":99,"id":16}] 
5161437 
[] 

哪有上述事情發生?怎麼能重現這個?該集合是否被佔用或者是鈦合金中的一個錯誤?此過程是視圖(視圖A)上數據綁定的一部分,此確切代碼適用於不同部分,唯一不同之處在於視圖A不直接受集合中的更改影響。

任何幫助?這甚至有可能與骨幹?我不能讓我的頭圍繞這個

+0

嘗試'console.log(最喜歡);'即。不會將其字符串化 – benhowdle89 2014-10-29 14:12:37

+0

當您通過'JSON.stringify'對整個集合進行序列化時,會隱式調用['toJSON'](http://backbonejs.org/#Collection-toJSON)方法,將集合轉換爲JSONable數組。但是當你嘗試序列化'collection.where'的結果時,這會導致錯誤,因爲['collection.where'](http://backbonejs.org/#Collection-where)返回**不能成爲模型的數組**直接序列化爲JSON。 – hindmost 2014-10-29 15:04:18

回答

2

顯然。哪裏函數嚴格比較2倍的值(===運營商),我給了一個string的形式,而在集合中的ID是一個integer的ID。太糟糕的主幹文件沒有說明這個信息

+0

上週我犯了同樣的錯誤:) – phil 2014-10-30 01:33:09