2012-05-19 6 views
10

の間に別のコントローラ/共有データから、コントローラの機能を、私はコントローラで、私は別のコントローラからの関数を呼び出したいということだと、私はこれを行う:コールの瞬間のために、コントローラ

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

ですが、そうです私に少し重い、これを行う別の(良い)方法はありますか?あなたは(いくつかのオブジェクトのコールバック関数の例)あなたのコントローラのコンテキストではない場合this.getApplication().getController('ControllerName').doSomething();

答えて

30

私はgetControllerメソッドを使用します、 あなたはこれを行うことができます。煎茶タッチ2でMVC規則を使用する場合は内部の「ControllerA」から「ControllerB」に「SomeMethodInB」と呼ばれるメソッドを呼び出すしようとしたとき

MyAppName.app.getController('ControllerName').doSomething(); 
7

、私は次のことをお勧めします:

もしmyAppNameを。 app.getController( 'ControllerB')。

「MyAppName」は、コアアプリケーション定義で定義したアプリの名前です。通常、app.jsファイルに定義されています。

は煎茶フォーラムによれば、以下に償却される:。

this.getApplication()getController( 'ControllerB')SomeMethodInB();実際に

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

私のアプリの定義ファイル(app.js)からそれを呼び出すときに、私は仕事を均等にする「this.getApplication()」メソッドを呼び出すことができる唯一の方法です。

関連する問題