2

なぜこれが私を得るのか教えてもらえますか

未定義の部分文字列を呼び出すことはできません。未定義のメソッドgetModelを呼び出すことはできません。

Ext.require(                   
    ['MyApp.controller.Country', 'MyApp.controller.CountryProperties'],     // this auto-loads all dependencies 
    function(){ 
            // ... as soon as this class 
            //    and all its dependencies have loaded...
        var controller = Ext.create('MyApp.controller.Country');  // create an instance
        var controller2 = Ext.create('MyApp.controller.CountryPropeties');  // create an instance
        controller.init();                  // launch init() method
        controller2.init();
    }
);

しかし、これらのコントローラー、ビュー、ストア、モデルをapp.jsのコントローラーに手動で追加すると、[]、ビュー:[]などが機能します。

ところで。私は内部コントローラー->ストア:[]、ビュー:[]を持っているので、コントローラーのみをロードすると、コントローラーの依存関係がロードされるはずです。

なぜそのエラーが発生するのですか?

ありがとうございました。:)

4

3 に答える 3

3

完全に正しい@arshabhの回答に加えて。

お電話の場合(rev 1. - タイポ修正)

this.application.getController('Country');
this.application.getController('CountryPropeties');

コントローラーからは、実行したのとまったく同じ結果が得られますが、少し単純です。アプリケーションの getter は不足しているクラスを自動的にロードし、コントローラーまたはストアの場合はそれらを初期化/登録することに注意してください。

于 2012-12-06T10:53:40.873 に答える
0

your code is perfect, but you are forgetting the scope(this)

please make a small change in the code as follows

    Ext.require(                   
['MyApp.controller.Country', 'MyApp.controller.CountryProperties'],     // this auto-loads all dependencies 
function(){ 
        // ... as soon as this class 
        //    and all its dependencies have loaded...
    var controller = Ext.create('MyApp.controller.Country');  // create an instance
    var controller2 = Ext.create('MyApp.controller.CountryPropeties');  // create an instance
    controller.init();                  // launch init() method
    controller2.init();
},this
   );
于 2012-12-06T09:07:05.730 に答える
0

私にとってうまくいったのは

this.application.getController('Country').doInit(this);

乾杯
エドガー

于 2015-04-24T00:37:18.000 に答える