2012-05-19 191 views
10

眼下之間的另一個控制器/共享數據的功能,當我在一個控制器和我想從另一個控制器調用一個函數,我這樣做:呼叫控制器從控制器

App.app.getControllerInstances()['App.controller.OtherController'].do_something(); 

是似乎對我來說有點沉重,是否有另一種(更好的)方式來做到這一點?如果你在你的控制器(在某些對象的回調函數爲例)上下文不是this.getApplication().getController('ControllerName').doSomething();

回答

7

當使用煎茶觸摸2 MVC的約定,我會建議試圖調用一個叫做從內部「ControllerA」 ControllerB'SomeMethodInB「方法時,以下幾點:

MyAppName。 app.getController( 'ControllerB')。

'MyAppName'是您在覈心應用程序定義中定義的應用程序的名稱 - 通常位於您的app.js文件中。

按照煎茶論壇,下面的折舊:

this.getApplication()getController( 'ControllerB')SomeMethodInB();

http://www.sencha.com/forum/showthread.php?158996

其實我可以調用「this.getApplication()」方法,甚至工作從我的應用程序定義文件(app.js)調用它時的唯一途徑。