(注意:我使用的是 Ember 版本 1.0.0-rc.3)
我试图捕捉{{linkTo}}
使用视图的“点击”,以便除了加载新模板之外,我还可以做其他事情(基本上是滚动侧边栏中的用户列表)。我对此相对较新(但已阅读文档!),我认为以下内容会起作用:
“用户”模板:
{{#each user in users}}
{{#view App.ClickView}}
{{#linkTo user user}}{{ user.name }}{{/linkTo}}
{{/view}}
{{/each}}
视图代码:
App.ClickView = Ember.View.extend({
click: function(evt) {
// do stuff
}
});
对于上下文,布局模板:
<div id='sidebar'>
{{#each user in users}}
{{#linkTo user user}}{{ user.name }}{{/linkTo}}
{{/each}}
</div>
<div id='main'>
{{ outlet }}
</div>
回顾users 模板,您可以看到每个模板{{linkTo}}
都包含在一个视图中。我期待点击该 {{linkTo}} 会因此冒泡并被视图 ( App.ClickView
) 捕获。不幸的是,事实并非如此。当点击发生在...上时,似乎没有以某种方式冒泡到视图中{{linkTo}}
。我该怎么办?
注意#1:如果我用一个元素替换{{linkTo}}
(仅在div#main中!我不打算替换div#sidebar中的那些)<a>
,它会起作用,并且点击会被视图捕获。但是,我不太确定我想走这条路(我必须复制{{linkTo}}
!的功能)。我认为应该有更好的方法来做到这一点。有没有?
注意#2:*请注意,我也知道我可以将我想要的“做东西”代码放在UserRoute的renderTemplate()中,但问题是该效果将发生在该路由的每个链接(包括侧边栏中的那些 - 这不是我想要的)。我希望滚动只触发特定{{linkTo}}
的 s - 特别是{{linkTo}}
div#main 中的 s。