繁体   English   中英

从Ember 2.0中的控制器动作调用控制器方法

[英]Calling controller method from controller action in Ember 2.0

Ember 2.0确实让我很难理解新功能。 我想从动作函数中调用控制器中的方法,但似乎找不到方法。 已经浪费了一些时间

我已经读过: 从emberjs中的控制器动作调用方法,但它仅适用于Ember 1.x,因为在Ember 2.0中不再有ArrayController了,我不能使用this.send()。

基本上我需要的是:

App.SomeController = Ember.Controller.extend({
   methodFunction: function(data) {
      console.log("YEY", data);
   }
   actions: {
      sessionAction: function(data) {
          this.methodFunction(data);
      }
   }
});

问题是this.methodFunction不可用

您提供的代码有误:

语法错误:controllerName.js:未知:意外令牌(7:3)(…)

methodFunction声明之后,您不见了。 固定:

App.SomeController = Ember.Controller.extend({
   methodFunction: function(data) {
      console.log("YEY", data);
   },
   actions: {
      sessionAction: function(data) {
          this.methodFunction(data);
      }
   }
});

对于模板:

<button {{action 'sessionAction' 'Example data'}}>Send session action</button>

它正确记录:

YEY示例数据

顺便说一句,您还可以利用ES2015语法:

export default Ember.Controller.extend({
   methodFunction(data) {
      console.log("YEY", data);
   },
   actions: {
      sessionAction(data) {
          this.methodFunction(data);
      }
   }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM