将两个动作分配给Ember.js中的一个元素

时间:2015-06-23 06:35:36

标签: ember.js

ul ul li .second { margin-left: -2.5em; } ul ul ul li .second { margin-left: -5em; }

不幸的是,当我添加第二个动作时,第一个动作停止了。我找不到将一个动作分配给一个元素的方法。

我找到了这个主题:Ember : handling multiple events with {{action}} tag?。它仍然适用吗?

2 个答案:

答案 0 :(得分:1)

该链接不再适用 - 视图正在从Ember中删除。

执行此操作的方法是使用span元素的组件:

<强>车把

{{my-span on-click=(action 'handleComponentSpanClick')
          on-context-menu=(action 'handleComponentSpanContextMenu')}}

<强>的JavaScript

App.MySpanComponent = Ember.Component.extend({
  tagName: 'span',
  click: function(e) {
    this.attrs['on-click'](e);
  },
  contextMenu: function(e) {
    this.attrs['on-context-menu'](e);
  }
});

Ember最近推出了改进的{{action}},允许您直接将操作放在HTML元素上 - 例如<span> s onclick

<span onclick={{action 'handleRegularSpanClick'}}
      oncontextmenu={{action 'handleRegularSpanContextMenu'}}>
  Regular Span
</span>

<强> JSBin

http://jsbin.com/jaxico/edit?html,js,output

答案 1 :(得分:0)

也许这不是您正在寻找的答案。但我只会使用一个操作来处​​理这个点击,并通过this.send("actionName")或控制器中的其他方法调用其他操作(或者您处理操作时)。