ember.js:在控制器中指定一个组件

时间:2015-07-20 12:52:51

标签: javascript ember.js handlebars.js

我有两种不同的表单组件。根据下拉菜单中选择的内容,我想使用不同的组件。

如何在控制器内部(我观察下拉列表更改)指定应在相应模板中调用哪个组件?

1 个答案:

答案 0 :(得分:2)

两种方式:

1)在控制器上设置一个属性,并在controller.js

中使用if
dropdownChange: function() {
  if(stuff) {
    this.set('useComponentOne', true);
  } else {
    this.set('useComponentOne', false);
  }
}.observes('...')

在模板中

{{#if useComponentOne}}
  {{componentOne}}
{{else}}
  {{componentTwo}}
{{/if}}

2)使用组件绑定,即在controller.js

dropdownChange: function() {
  if(stuff) {
    this.set('componentName', 'One');
  } else {
    this.set('componentName', 'Two');
  }    
}.observes('...')

并在模板中

{{component componentName}}