余烬 2,显示空模型的消息,而不是在 hbs 模板中加载,每个或如果



我经常在我的代码中使用(我不知道我使用它是否正确(:

{{#each model.posts as |post|}}
  <div>post.title</div>
{{else}}
  <div>I'm loading the posts...</div>
{{/each}}

直到今天一切都好。

但是现在我不知道model.posts是否为空。

如何显示错误而不是永远加载空数组?

模型上的关系返回解析为RecordArrayPromiseArray。在RecordArray上,您可以检查isLoaded。但是,您无法访问此属性,因为PromiseArray不会将其代理到底层RecordArray。然而,PromiseArray实现了PromiseProxyMixin,它有isPendingisSettled可用。

查看此 twiddle 以获取有效的解决方案。

基本上这是工作代码:

{{#each model.posts}}
{{else}}
  {{#if model.posts.isPending}}
    <div>lade...</div>
  {{else}}
    <div>nix da :(</div>
  {{/if}}
{{/each}}
我想

到了这两个选项:

  1. 使用余烬-承诺-助手,非常容易直接在您的模板中使用:https://github.com/fivetanley/ember-promise-helpers

  2. 如前所述,如果您正在使用 RecordArray,请检查 isLoaded 属性。

最新更新