我使用IronRouter将我的应用程序构建到控制器(路由器)中,我开始附加我的事件。到目前为止一切都很好。
然后我开始使用{{#contentFor ...}}
功能,从那以后,我的事件不再触发,因为我渲染相关元素的区域是不同DOM树的一部分。
有没有办法继续听这些事件?我考虑过简单地添加一个全局监听器,但这会从事件中消除很多灵活性。
CoffeeScript的:
MyRouter = RouteController.extend(...)
MyRouter.events(
'click .inside': (event) ->
alert("inside") # works
'click .outside': (event) ->
alert("outside") # does not work
)
HTML:
<button type="button" class="inside">
inside
</button>
{{#contentFor 'anotherDomRegion'}}
<button type="button" class="outside">
outside
</button>
{{/contentFor}}
和布局文件:
<h1>event demo</h1>
<div>
{{> yield}}
</div>
<div>
{{> yield 'anotherDomRegion'}}
</div>
答案 0 :(得分:1)
我自己遇到了同样的问题。我能解决的唯一方法是将contentFor设置为模板,以便将事件分配给该模板。
{{> contentFor region="anotherDomRegion" template="anotherDomRegion"}}
然后;
<template name="anotherDomRegion"> ... </template>
和
Template.anotherDomRegion.events({ ... });
祝你好运!