我試圖通過使用一個控制器,此行來檢索已經被加載到存儲記錄檢索店方誌看截圖)。當我調用它的長度時,結果是「未定義」。在上面的代碼行運行之前,我已經使用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. 使用灰燼數據
- 2. 不保存數據灰燼
- 3. 灰燼數據FilterBy
- 4. 灰燼,數據工作使用JSON-API
- 5. 灰燼數據重寫URL
- 6. 如何從灰燼數據
- 7. 灰燼數據屬性不被駱駝
- 8. 灰燼數據DS.Model.find()不似乎工作
- 9. 數據不顯示 - 灰燼JS - REST API
- 10. 灰燼數據queryRecord不更新模板
- 11. 灰燼控制器帶有灰燼數據
- 12. 灰燼數據`include`使用JSONAPI不加載整個負載
- 13. 灰燼問題使用this.render
- 14. 使用灰燼JS尖銳
- 15. 使灰燼應用抓取
- 16. 灰燼2,使用插件像灰燼,真幫手,而不是僅僅灰燼默認方式表演
- 17. 灰燼ArrayProxy使用init不工作
- 18. 灰燼JS查找性能
- 19. 計算性能 - 灰燼
- 20. 灰燼砌體不能正常工作
- 21. 輪詢使用灰燼,數據使用Rails後端
- 22. 灰燼數據保存 - Laravel不接收數據
- 23. 灰燼數據嵌套資源URL
- 24. 灰燼數據遞歸hasMany關聯
- 25. 灰燼數據呈現的hasMany
- 26. 如何處理灰燼數據錯誤
- 27. 灰燼數據JSON-RPC請求示例
- 28. 訪問的XMLHttpRequest從灰燼數據
- 29. 灰燼數據,沒有的hasMany更新
- 30. 灰燼數據觀察混亂
支持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