如何确定组件是否动态返回?

时间:2015-04-07 21:41:41

标签: ember.js ember-cli handlebars.js

我有一个访问数据库的ember组件,并将结果返回到数据类型的UI组件中。我希望能够使用" N / A"当组件的结果为null或无效时。

例如,我有:

{{each bar in foobars}}
  <td class="classyTD">
    {{getBars bar=bar}}
  </td>
{{/each}}

当我有数据时这很有效,但是当我没有数据时却什么都不返回。设计师更喜欢&#34; N / A&#34;。修改数据库不是一个选项,修改组件getBars是一个选项,这将是非常痛苦的。

在执行组件后是否有方法/方法来处理此问题?如果没有,或者它是一个可怕的想法 - 我会因改变组件而受苦,我相信社区的意见。

2 个答案:

答案 0 :(得分:1)

您真的应该在组件模板中执行此操作。您可以将N / A字符串作为参数,如果有任何帮助:http://emberjs.jsbin.com/lemabekuwi/2/edit?html,css,js,output

或者你可以通过一个类改变它表示空虚的组件并使用一些css魔法:http://emberjs.jsbin.com/duqazahegi/1/edit?html,css,js,output

答案 1 :(得分:0)

如果要限制把手中的逻辑,可以在组件js文件中包含以下内容:

({
  setBar: (function() {
    if (!this.get('bar')) {
      return this.set('bar', 'N/A');
    }
  }).observes('bar')
});