在另一个控制器内,我得到如下的应用程序控制器(根据需要定义):

appCtrl = this.get('controllers.application');


访问或设置属性可以正常工作,例如

appCtrl.set("property", true);


将触发注册的侦听器。

但是我无法调用应用程序控制器的方法,例如假设应用程序控制器中存在函数x。然后以下调用失败,因为appCtrl不包含函数x:

appCtrl.x();


我还尝试将x定义为应用程序控制器中的一个动作,并从外部进行触发,如下所示:

appCtrl.send("x");


这也没有用。

我应该如何从另一个控制器调用应用程序控制器的功能?

最佳答案

我尝试了一些简单的方法,似乎没有问题。这是一个JSbin:

http://emberjs.jsbin.com/borejamufo/3/edit?html,js,console,output

07-24 20:22