模板中的链接操作指向有三个地方,该模板对应的控制器和路由以及视图,默认是先跳转到控制器,如果控制器里没有定义模板中动作的方法,就去该模板对应的路由里找,如果还没找到,就去父级路由找,直到顶级路由,如果都没有找到则会报错,当然也可以改变默认方式,通过target让该动作跳转到其他目标,比如该模板对应的视图中,比如:
<button {{action "select" post target="view"}}></button>
App.PostsIndexView = Ember.View.extend({
actions: {
select: function(post) {
// do your business.
}
}
});
这里值得注意的是,不管是控制器还是路由抑或是视图,动作方法都要定义在actions哈希表中。