2

点击“编辑”触发动作“编辑”时:

  {{#link-to "pages.show" page class="list-group-item"}}
    {{page.name}}
    <span class="badge" {{action "edit" page preventDefault=false}}>edit</span>
  {{/link-to}}

然后触发动作(例如打开编辑页面),但在下一秒链接到重定向完成,所以我最终在“pages.show”路线上。

预期:仅调用“编辑”操作,并且单击事件(?)不会“冒泡”到链接帮助程序。

旁注使用 Ember 2.2,上面的模板是组件的一部分。

PS:我认为在操作中使用preventDefault=false会阻止这种行为 - 但显然链接到帮助器从其他地方获取信息。

4

1 回答 1

8

你需要的叫做event bubbling. bubbles=false您可以通过在助手内部使用来禁用它action,这样您的点击事件就不会冒泡到link-to元素

{{#link-to "pages.show" page class="list-group-item"}}
  {{page.name}}
  <span class="badge" {{action "edit" page bubbles=false}}>edit</span>
{{/link-to}}

http://emberjs.com/api/classes/Ember.Templates.helpers.html#toc_event-propagation

preventDefault是另一回事,当设置preventDefault为 false 时,您允许 DOM 事件的默认浏览器操作。

于 2016-02-02T16:32:25.877 回答