如何在不注入服务的情况下制作承诺感知组件?

时间:2016-01-11 13:36:04

标签: ember.js ember-components

我刚刚开始学习Ember,并试图创建一个表组件。我希望表组件在数据仍在提取时呈现加载/微调器(尚未实现承诺)。

我在一篇博文中找到了一个例子 - Rendering a Promise Before it Resolves - 效果很好。但是,在我的情况下,我不认为表组件会自己加载数据。我认为让路由处理它会更灵活。

因此,我进一步观察并发现了另一篇博文 - Promise-aware controllers and components with Ember.js。它完全取决于我更喜欢​​的方式。但是,我想知道是否:

  1. 将PromiseProxyMixin混合到Component,hack中,或者就是这样 它被设计用于?
  2. 无论如何都要通过promise属性更改发送数据。我觉得这很奇怪:

    {{ember-table promise = model.data}}

  3. 我尝试使用计算字段来对名称进行别名,并承诺其他内容,但它似乎无法正常工作。

1 个答案:

答案 0 :(得分:0)

每个模型都有一个isLoaded属性。因此,您可以创建一个块组件,该组件将显示模型值,如果尚未加载,则创建一个微调器。

//template consuming component
{{#loadingSpinner}}
  {{model.value}}
{{/loadingSpinner}}


//templates/components/loading-spinner.hbs
{{#if model.isLoaded}}
    {{yield}}
{{else}}
    //YOUR LOADING SPINNER GOES HERE
{{/if}}