簡體   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