2015-11-22 103 views
1

免責聲明:非常燼新手在這裏,所以也許我問什麼是太基本的,但我沒有找到這方面的任何解釋在網絡灰燼,渲染的模型嵌套集異步

我有一個父母對象舉報其中包含對象的集合。

當我加載URL /api/reports/001/charts,該報告001被請求的API,那麼所有的圖表屬於這個報告,那麼一切都被渲染和..秒鐘後頁面顯示給用戶。

像這樣:

enter image description here

我想要是提供一個更加進步的渲染:

  1. 報告從API
  2. 報告加載向用戶顯示圖表 ele用裝載噴絲
  3. 圖表發言:被請求的API單獨
  4. 圖表是展現給用戶單獨

步驟3和4並行獨立發生的每個圖表

事情是這樣的:

enter image description here

當然,我不希望任何人來給我一個完整的解決方案,我正在尋找更多的方向或者一些鏈接在哪裏可以找到靈感。

回答

1

我們在儀表板上正在做類似的事情。在路線中,我們加載包含小部件列表及其位置的用戶儀表板。然後在儀表板模板中,我們呈現每個小部件的組件,就像這樣。

{{#each widgets as |widget|}} 
    {{component widget.type widget}} 
{{/each}} 

然後通過將控件實例(其中有它自己的自定義設置)成分我們就可以獲取相關數據並顯示它。每個小部件也可以擁有它自己的「微調器」來告訴用戶它仍在加載。

如果我假設你的情況比較簡單一點,因爲你只顯示圖表,可能是某種類型的ID,你可能不使用組件助手並直接引用圖表組件。

{{#each charts as |chart|}} 
    {{report-chart chart.id}} 
{{/each}} 
+0

你好@yorbro你的插件看起來很有前途,你能否用你的建議創建一個合適的答案? – fguillen

+0

@ karl-johan-sjögren將_charts_加載功能移動到Component是一個非常好的主意,我一直在使用那個,但是我開始發現問題。看起來像Ember不喜歡這種方法,因爲要使它工作,我必須[將模型加載到組件代碼中](http://discuss.emberjs.com/t/should-ember-components-load-data/ 4218)和事情(幫手,模板)開始失敗。我仍然會嘗試,我只是想分享我遇到的困難。 – fguillen

+0

是否加載組件中的數據並不是最佳的,但在某些情況下,它是唯一可行的方法,除非您開始弄亂子路由(如果您想要更多的圖表,這將無濟於事)。爲了解決未準備好的問題,您可以使用建議的@yorbro建議,或者直接用一個等待承諾完成的屬性自己完成。在數據準備好之前,不要試圖渲染內容。 –