Ember.js将操作分配给组件的js文件中的组件

时间:2015-08-12 12:21:11

标签: javascript ember.js ember-cli

我有一个动态创建的引导按钮组。所以我创建了一个按钮组件,它具有不同的图标和文本。

现在我已将动作分配给按钮内的范围。

样品component.js

{% for meta_field in meta_fields %}
{% set attr_field = attribute(form, meta_field.meta_value) %}
  {{ form_widget(attr_field) }}
{% endfor %}

样品component.hbs

$('#report-content').find('[factid = ' + row.entity.factId + ']');

我在export default Ember.Component.extend({ tagName: 'button', actions:{ triggerStatus:function(){ this.sendAction('triggerStatus',this.get('dataId'),this.get('type')); } }, didInsertElement: function(){ //is it possible to assign action here } } 内尝试了<span class="glyphicon glyphicon-{{icon}}" aria-hidden="true" {{action "triggerStatus"}}></span> ,但没有成功。 有人可以建议我如何将动作分配给javascript文件本身的组件吗?是否可以这样做?

1 个答案:

答案 0 :(得分:0)

终于找到了问题的解决方案。解决方案非常简单,我们可以在组件中添加click处理程序,然后我们可以调用sendAction方法。请在下面找到示例代码段

export default Ember.Component.extend({
  tagName: 'button',
  //rewrite the following action to
  /*actions:{
    triggerStatus:function(){
      this.sendAction('triggerStatus',this.get('dataId'),this.get('type'));
    }
  }*/,
  //to a component click handler
  click: function(){
    this.sendAction('triggerStatus',this.get('dataId'),this.get('type'));
  }
}

并从sample-component.hbs文件中的span标记中删除了该操作

<span class="glyphicon glyphicon-{{icon}}" aria-hidden="true"></span>

现在,按钮组中的每个按钮都具有基于类型

的不同操作