ember.js 从Ember setupController内部的Route调用控制器函数

zzoitvuj  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(127)

如何从位于Route中的setupController调用操作手柄内的函数?(还有,如何调用控制器内的函数,而不是Route本身)。
我希望我的页面分析URL参数,并根据这些参数填充一些变量。

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

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

这将返回一个错误:“未行程函式'testFunction'。”
显然,我的方法更复杂,有很多参数,这只是为了演示问题。

gg58donl

gg58donl1#

这应该对你有用。

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

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

eagi6jfj2#

我编辑了这篇文章,试图澄清您的问题,但我不确定您所说的“从setupController调用操作手柄内的函数”是什么意思。
在示例代码中,testFunction要响应,它需要位于路径树的更高位置,从它被调用的地方开始。动作向上。如果你试图在控制器上设置变量,你可以在setupController钩子中完成,但是你不需要动作来完成它;只需在actions块外部定义testFunction,并像在路由中调用一个普通方法一样调用它:

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

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

我不知道车把和这个问题有什么关系,所以我想知道我是否正确地理解了你想做什么?

相关问题