Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 应在控制器上定义关闭操作_Javascript_Ember.js_Closures_Action - Fatal编程技术网

Javascript 应在控制器上定义关闭操作

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”的操作。 但是,它是在路线上定义的。鉴于控

余烬1.13.10

我想尝试关闭操作,因此我定义了a路线:

import Ember from 'ember';

export default Ember.Route.extend({
  actions: {
    doSave() { ... }
  }
});
以及模板:

{{my-component onSave=(action 'doSave')}}
但我收到了错误消息:
在(生成的test.index控制器)中未找到名为“doSave”的操作。

但是,它是在路线上定义的。鉴于控制器在Ember中有点不推荐使用,我希望应该在路由上而不是控制器上定义操作。
是否有一个特定的原因说明为什么应该在控制器上定义关闭操作?

关闭操作与控制器通信,而不是与路由通信,一旦可路由组件着陆,它们将替换控制器


在您的情况下,如果您希望冒泡动作,则必须从控制器发送。

关闭动作与控制器通信如果您希望冒泡动作到达路线,则需要在控制器上有一个动作来发送。@Kitler您知道是否在某处记录了该动作吗?Afaik目前没有记录挂起的可路由组件。我认为控制器将被组件替换,但应用程序的操作和其他逻辑内容将不在路由中。它们将被替换,但直到可路由组件和控制器就位。