Ember:在单击其中的操作时阻止链接触发

时间:2014-06-23 15:03:56

标签: javascript ember.js

我有一个表格,我希望用户在点击一行时导航到特定项目,但该行可能包含触发操作但触发导航的其他元素(如复选框)(想想gmail)。

我的结构是这样的:

{{#each player in controller}}
  {{#link-to "player" player.uid tagName="tr"}}
    <td>
       {{input action="select" type="checkbox" checked=selected bubbles=false}}
    </td>
    <td>
      {{player.name}}
    </td>
    ...
  {{/link-to}}
{{/each}}

我的问题是鄙视bubbles=false(如spec所示),link-to点火并导航到另一条路线。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

当您将某个操作附加到元素时,该输入帮助器不会以这种方式支持action='foo'。它根本不被击中。

http://emberjs.jsbin.com/lugatite/1/edit

您需要滚动自己的复选框,或者只是观察控制器中的选中值

App.MyCheckBox = Ember.Checkbox.extend(Ember.TargetActionSupport, {
    target: Ember.computed.alias('controller'),
    action: 'save',
    actionContext: Ember.computed.alias('context'),
    click: function(el) {
      this.triggerAction(); 
      el.stopPropagation();

    }
});

http://jsbin.com/lugatite/5/edit