2012-05-13 7 views
1

私はExtJS 4.1 RC3で作業しています - MVCパターンに従います。今日はコントローラが初期化される前にいくつかのロジックを実装する必要があるのは初めてです。私はExt.app.Applicationからthisメソッドを思い出し、それを使用するように決めました。アプリケーションのinitメソッド(ドキュメントで宣伝されているように)

これは決して解雇されたようではありませんが、私はそれを発砲するはずのものを見つけることはできません。

2011年9月以降、この方法については、small unanswered threadが動作していないことがわかりました。ポスターの解決策は、自分のアプリをリファクタリングすることでした。これはほかの人にとっては効果がありますか?

私は起動方法を使用するのと同じ方法でこれをコーディングしています。それは間違っていますか?コードは次のようになります。

// app.js 
Ext.application({ 
    name: 'MyApp', 

    autoCreateViewport: true, 

    controllers: ['myController'], 

    init: function() { 
     console.log('init'); // this never gets called 
    }, 

    launch: function() { 
     console.log('launch'); // this works fine 
    } 

}); 
+0

私はあなたがExtJSに4.1へのExtJS 4.07からいくつかのコードをアップグレードした感じを持っています。本当?私はあなたにこれについて質問をしてもらえますか? – sha

+0

@sha本当に、私はMVC 4.1以外のMVC 4.07アプリを実際にリファクタリングしていました。私が始めた前に何が関係しているのか分からなかった... Qsに答えてうれしい。 – Geronimo

答えて

3

フレームワークのバグです。私はうまくいけばそれを4.1.1のリリースにする修正を押し上げた。

+0

その間、私は "メイン"コントローラのinitメソッドで必要なロジックを実行していますが、どちらの場合でもそれをやり直すことを好むかもしれません。 – Geronimo

3

私はExtJs 4.0.7で作業していますが、initメソッドは起動しません(バグ) 私の回避策は、自分で呼び出すことです。

launch: function() { 
    this.init(); 
    console.log('launch'); // this works fine 
} 

今すぐ上記のinitメソッドが到達可能である:

init: function() { 

    console.log('init'); // this gets called 
    // For example here's a quick way to stop an Ext Task... 
    this.on({ 

     stopEvents: function() { 
     Ext.TaskManager.stopAll(); 
     } 

    }) 
    } 
}, 
関連する問題