Javascript 应在控制器上定义关闭操作
余烬1.13.10 我想尝试关闭操作,因此我定义了a路线:Javascript 应在控制器上定义关闭操作,javascript,ember.js,closures,action,Javascript,Ember.js,Closures,Action,余烬1.13.10 我想尝试关闭操作,因此我定义了a路线: import Ember from 'ember'; export default Ember.Route.extend({ actions: { doSave() { ... } } }); 以及模板: {{my-component onSave=(action 'doSave')}} 但我收到了错误消息:在(生成的test.index控制器)中未找到名为“doSave”的操作。 但是,它是在路线上定义的。鉴于控
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
doSave() { ... }
}
});
以及模板:
{{my-component onSave=(action 'doSave')}}
但我收到了错误消息:在(生成的test.index控制器)中未找到名为“doSave”的操作。
但是,它是在路线上定义的。鉴于控制器在Ember中有点不推荐使用,我希望应该在路由上而不是控制器上定义操作。
是否有一个特定的原因说明为什么应该在控制器上定义关闭操作?关闭操作与控制器通信,而不是与路由通信,一旦可路由组件着陆,它们将替换控制器
在您的情况下,如果您希望冒泡动作,则必须从控制器发送。关闭动作与控制器通信如果您希望冒泡动作到达路线,则需要在控制器上有一个动作来发送。@Kitler您知道是否在某处记录了该动作吗?Afaik目前没有记录挂起的可路由组件。我认为控制器将被组件替换,但应用程序的操作和其他逻辑内容将不在路由中。它们将被替换,但直到可路由组件和控制器就位。