[英]Ember 2, Show message for an empty model instead of loading in hbs template, each or if
我經常在我的代碼中使用(我不知道我是否正確使用它):
{{#each model.posts as |post|}}
<div>post.title</div>
{{else}}
<div>I'm loading the posts...</div>
{{/each}}
直到今天一切都好。
但現在我不知道model.posts是否為空。
如何顯示錯誤而不是永遠加載一個空數組?
模型上的關系返回一個PromiseArray
,它解析為RecordArray
。 在RecordArray
您可以檢查isLoaded
。 但是,您無法訪問此屬性,因為PromiseArray
不會將其代理到底層RecordArray
。 然而, PromiseArray
實現了PromiseProxyMixin
,它具有isPending
和isSettled
可用。
檢查這個旋轉工作解決方案。
基本上這是工作代碼:
{{#each model.posts}}
{{else}}
{{#if model.posts.isPending}}
<div>lade...</div>
{{else}}
<div>nix da :(</div>
{{/if}}
{{/each}}
我想到了這兩個選項:
使用ember-promise-helpers,非常容易直接在您的模板中使用: https : //github.com/fivetanley/ember-promise-helpers
如前所述,如果您正在使用RecordArray,請檢查isLoaded
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.