动态确定Ember组件的存在?

时间:2016-01-14 17:11:49

标签: javascript ember.js

我正在查看ember-htmlbars包并发现这个util用于确定组件是否可用? https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/lib/utils/is-component.js

有没有办法在我的应用程序中使用它?我正在构建一个仪表板类型的界面,一些仪表板小部件具有可选的操作。从本质上讲,我想做一些事情:

<div class="panel panel-default">
  <div class="panel-body">
    {{component model.displayComponent model=model}}
  </div>
  {{#if isComponent(model.actionComponent) }} <!-- this would be a property -->
    <div class="panel-footer">
      {{component model.actionComponent model=model}}
    </div>
  {{/if}}
</div>

我的后备是为我的每个没有一个小部件的小部件添加一个空白操作组件,但是能够检查它们是否首先存在会更清晰。

1 个答案:

答案 0 :(得分:3)

您可以创建助手is-component

export default Ember.Helper.extend({
  compute([name]) {
    return this.container.registry.has('component:' + name);
  }
})

并像{{#if (is-component model.actionComponent) }}

一样使用它