Ember - 链接到块中的操作

时间:2017-05-19 19:25:48

标签: ember.js

我正在Ember.js中构建一个包含表格的组件。该表中的每个tr都是使用{{#link-to ...}}创建的,因此点击该行的任意位置都会将用户带到另一条路线。

但是,我想在这些行中点击td元素以在新窗口中打开链接。我这样做是为了行动。

现在,点击相应的td元素也会触发{{#link-to}}重定向并激活td元素上的操作。

相反,我想点击正确的td元素,只有 触发该元素的操作,并忽略上面的{{#link-to}}事件。我该怎么做呢?

这就是我的代码:

<table>
  {{#link-to 'widget' widget.id tagName='tr'}}
    <td>Go to link-to</td>
    <td {{action 'sendMail' widget.email}}>Send Email</td>
  {{/link-to}}
</table>

1 个答案:

答案 0 :(得分:2)

Look at this twiddle实施了您的案例。

你需要调用event.stopPropagation才能获得event个对象,为了得到它我使用onclick={{action

<table>
  {{#link-to 'my-route' tagName='tr' bubble=false}}
    <td>Go to link-to</td>
    <td onclick={{action 'sendMail' }}>Send Email</td>
  {{/link-to}}
</table>

在sendMail中,您需要停止事件传播。

actions:{
    sendMail(event){
      console.log('sendMail');
      event.stopPropagation();
    }
  }