簡體   English   中英

從Route內的Ember setupController調用控制器函數

[英]Calling controller function from Ember setupController inside Route

如何從Route中的setupController的動作手把內調用函數。 (此外,如何在控制器內部而不是路由本身調用函數)。

我希望我的頁面分析URL參數並基於這些參數填寫一些變量。

App.CresRoute = Ember.Route.extend({
  setupController: function(){
    this.send('testFunction', "Print me");
  },

  actions: {
    testFunction: function(string){
        console.log(string);
    },
  }
});

這將返回錯誤:“沒有任何處理函數'testFunction'。”

顯然,我的方法更復雜,有很多參數,這只是為了演示問題。

我已經對此進行了編輯,以試圖闡明您的問題,但是我不確定“從setupController調用動作把手內部的函數”的含義。

在您包含的示例代碼中,為了使testFunction響應,它需要在調用它的路由樹上更高。 行動起來。 如果您想在控制器上設置變量,則可以在setupController掛鈎中進行設置,但是您無需執行任何操作; 只需在action塊外定義testFunction ,然后像在路由上的普通方法一樣調用它即可:

App.CresRoute = Ember.Route.extend({
  setupController: function(){
    this.testFunction("Print me");
  },

  testFunction: function(string){
    console.log(string);
  }
});

我不知道Handlebars與這個問題有什么關系,所以我想知道我是否已經正確理解了您要做什么?

這應該為您工作。

App.CresRoute = Ember.Route.extend({
  setupController: function(){
    this.actions.testFunction('Print me');
  },

  actions: {
    testFunction(string){
        console.log(string);
    },
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM