我经常在我的代码中使用(我不知道我使用它是否正确(:
{{#each model.posts as |post|}}
<div>post.title</div>
{{else}}
<div>I'm loading the posts...</div>
{{/each}}
直到今天一切都好。
但是现在我不知道model.posts是否为空。
如何显示错误而不是永远加载空数组?
模型上的关系返回解析为RecordArray
的PromiseArray
。在RecordArray
上,您可以检查isLoaded
。但是,您无法访问此属性,因为PromiseArray
不会将其代理到底层RecordArray
。然而,PromiseArray
实现了PromiseProxyMixin
,它有isPending
和isSettled
可用。
查看此 twiddle 以获取有效的解决方案。
基本上这是工作代码:
{{#each model.posts}}
{{else}}
{{#if model.posts.isPending}}
<div>lade...</div>
{{else}}
<div>nix da :(</div>
{{/if}}
{{/each}}
到了这两个选项:
使用余烬-承诺-助手,非常容易直接在您的模板中使用:https://github.com/fivetanley/ember-promise-helpers
如前所述,如果您正在使用 RecordArray,请检查
isLoaded
属性。