Ember.js 余烬定义动作,在控制器与路线中

Ember.js 余烬定义动作,在控制器与路线中,ember.js,Ember.js,来自官方指南: 如果控制器未实现与相同名称的方法 在其actions对象中,该操作将被发送到 路由器,当前活动的叶路由将有机会 来处理这个动作 那么,在控制器中定义动作方法和在路由中定义动作方法的利弊是什么呢?正如我所看到的,导游并没有谈论这一点。 在控制器中定义可以“更快”地防止动作抖动。这是个好问题,尽管可能不适合SO格式 简单的答案是,将路由相关操作放入路由器,将控制器/模型相关操作放入控制器 如果您发现自己在路由器操作中调用this.controllerFor,或在控制器操作中调用thi

来自官方指南:

如果控制器未实现与相同名称的方法 在其actions对象中,该操作将被发送到 路由器,当前活动的叶路由将有机会 来处理这个动作

那么,在控制器中定义动作方法和在路由中定义动作方法的利弊是什么呢?正如我所看到的,导游并没有谈论这一点。
在控制器中定义可以“更快”地防止动作抖动。

这是个好问题,尽管可能不适合SO格式

简单的答案是,将路由相关操作放入路由器,将控制器/模型相关操作放入控制器

如果您发现自己在路由器操作中调用
this.controllerFor
,或在控制器操作中调用
this.get('target')
,则很有可能是您将操作放错了位置

与转换相关的操作通常是一个很好的选择。修改或保存模型等操作可能属于控制器


请记住,操作会从叶路由冒泡到父路由。因此,如果您想定义一个应用于一组子路由的操作,将其放在父路由中是有意义的。

Hi@torazaburo,自2014年6月以来有什么变化吗?您是否仍然建议在控制器上使用操作,或者我们是否应该在拥有可路由组件的情况下将所有内容移动到路由?