我試圖通過使用一個控制器,此行來檢索已經被加載到存儲記錄檢索店方誌看截圖)。當我調用它的長度時,結果是「未定義」。在上面的代碼行運行之前,我已經使用Chrome Ember檢查器確認記錄確實已加載到產品中。我想,自從store.all返回一個記錄陣列,我可以立即迭代它,而不像承諾。請問我哪裏錯了?不能使用灰燼數據
Q
不能使用灰燼數據
0
A
回答
0
問題是我試圖迭代使用傳統的for循環的記錄陣列。似乎a)recordarray不能返回長度,2)必須使用forEach循環遍歷它,這是我最初做的,但因爲forEach不支持break或continue,所以我放棄了。
-1
Ahh promises! :)
你應該能夠做到這一點:
var allProducts = this.store.all('product').then(function(products) {
return products;
});
+0
你不需要使用承諾。請參閱:「find返回一個DS.PromiseArray滿足DS.RecordArray和*全部直接返回DS.RecordArray。*」 – 2015-02-24 16:15:36
1
返回的strange object
是record array
。這非常重要,因此Ember可以爲加載的數組設置觀察者。我相信這是造成你困惑的原因。請參閱more specifics in the docs:
請注意,DS.RecordArray不是JavaScript數組。 它是一個實現Ember.Enumerable的對象。這是重要的 ,因爲,例如,如果您想通過索引檢索記錄,[] 表示法將不起作用 - 您將不得不使用objectAt(index)。
你將不得不看的機制的文檔爲DS.RecordArray
,但你應該能夠使用forEach
方法在其上進行迭代。請參閱ember array documentation for more details。
相關問題
- 1. 灰燼,數據工作使用JSON-API
- 2. 灰燼數據重寫URL
- 3. 數據不顯示 - 灰燼JS - REST API
- 4. 灰燼數據`include`使用JSONAPI不加載整個負載
- 5. 灰燼2,使用插件像灰燼,真幫手,而不是僅僅灰燼默認方式表演
- 6. 使用灰燼JS尖銳
- 7. 灰燼ArrayProxy使用init不工作
- 8. 計算性能 - 灰燼
- 9. 灰燼砌體不能正常工作
- 10. 灰燼數據遞歸hasMany關聯
- 11. 灰燼文件 - 只讀嵌套數據
- 12. 灰燼數據,沒有的hasMany更新
- 13. 灰燼數據嵌套資源URL
- 14. 灰燼數據觀察混亂
- 15. 灰燼數據和Handsontable遞歸
- 16. 無法從灰燼數據擴展DS.Model
- 17. 灰燼數據:觀察關聯模型
- 18. 灰燼行動
- 19. 在灰燼
- 20. 在灰燼
- 21. 使用灰燼數據的一對多或多對多,如何指定使用燼數據的關係
- 22. 保存使用灰燼數據嵌套模型
- 23. 灰燼數據側載性能上被丟棄的模型
- 24. 灰燼不能迭代模型數組屬性
- 25. 從調用視圖灰燼
- 26. 灰燼路由器:如何使用transitionTo
- 27. 使用bindAttr如果ArrayController包含灰燼
- 28. 路線在灰燼
- 29. 擴展灰燼LinkView
- 30. Ember.HTMLBars.compile在灰燼2.7
支持break和繼續forEach'很容易實現... http:// emberjs。 jsbin.com/nijebe/1/edit?html,js,console,output – Kalman 2015-02-24 16:53:39
@KalmanHazins謝謝,這非常有幫助 – RunLoop 2015-02-24 16:59:54