【发布时间】:2016-01-09 00:15:42
【问题描述】:
我在 Ember 组件中有一个简单的引导程序/jQuery 导航栏:
<ul class="nav-main">
<li>
<a class="nav-submenu" data-toggle="nav-submenu" href="#">Workgroups</a>
<ul>
{{#each workgroups as |workgroup|}}
<li>
{{#link-to 'workgroup' workgroup.id tag='a'}}{{workgroup.label}}{{/link-to}}
</li>
{{/each}}
</ul>
</li>
直到一切就绪(显示子菜单)。
但是现在我想在单击“工作组”以显示所有工作组的列表时转换到路线(通过操作):
<a class="nav-submenu" data-toggle="nav-submenu" href="#" {{action 'transition'}}>Workgroups</a>
但这根本不会触发 ember 操作(如果我提供了错误的名称,甚至不会告诉我没有处理该操作)。
使该动作触发的唯一方法是删除data-toggle,这当然不会再打开子菜单了。
在这里我尝试了一些答案:
// in compenent
didInsertElement: function(){
Ember.$('[data-toggle=nav-submenu]').click(function(event) {
console.log('data-toggle was clicked');
console.log(event);
event.stopPropagation();
});
}
这在控制台中给了我合理的输出,但仍然不会触发操作。
所以问题是我是否以及如何使两者都触发它的动作。
我能想到的一种可能的解决方法是在我的 Ember-Action 中触发 jQuery-Event,但这对我来说似乎很奇怪(而且我不知道该怎么做)。
【问题讨论】: