Ember在控制器和路线中定义动作

时间:2014-06-01 16:29:34

标签: ember.js

来自官方指南:

  

如果控制器没有实现与其名称相同的方法   动作在其动作对象中,动作将被发送到   路由器,当前活动的叶子路由将有机会   处理行动。

那么什么是专业& amp;在控制器中定义动作方法和在路径中定义动作方法的缺点?我可以看到指南并没有谈到这一点。 在控制器中定义可以更快"在防止动作起泡的意义上。

1 个答案:

答案 0 :(得分:31)

很好的问题,虽然可能不适合SO格式。

简单的答案是,在路由器中放置与路由相关的操作,在控制器中放置与控制器/模型相关的操作

如果您发现自己在路由器操作中调用了this.controllerFor,或者在控制器操作中调用了this.get('target'),那么您很可能错误地放置了该操作。

与过渡相关的行动通常是放入路线的好选择。修改或保存模型等操作可能属于控制器。

请记住,操作从叶子路径冒泡到父路径。因此,如果要定义适用于一组子路由的操作,则将其放在父路由中是有意义的。