2

次のように、ウィンドウにツール (検索、ヘルプ、ギアなど) を動的に追加したい: http://www.rahulsingla.com/sites/default/files/content/blog/extjs/extjs-panel -add-tool.htm

また、UIMyWindow の複数のインスタンスを同時に作成する必要があります。

ただし、2 つのファイルを生成する Ext Designer を使用しています。

  • MyWindow.ui.js: クラス宣言。
  • MyWindow.js: メソッドの実装。

また、Ext Designer には、デザイン時に [ツール] オプションがありません (見つけられませんでした)。

次のように、MyWindow.js と MyWindow.ui.js の外にツールを追加していました。

var winMyWindow = new UIMyWindow({
    autoShow: 'true', 
    tools: [{
               type:'gear',
               handler: function(){
                   // Some code...
               }
    }]
});

しかし、このブロックを MyWindow.js 内に配置したいと考えています。だから、私はこれをしました:

UIMyWindow = Ext.extend(UIMyWindowUi, {
    tools: [{
               type:'gear',
               handler: function(){
                   // Some code...
               }
    }],

initComponent: function() {
   UImenuDock.superclass.initComponent.call(this);

「なぜこのコードを MyWindow.ui.js の中に入れないのですか?」と聞かれたら、「デザイン ファイル (Ext Designer) を変更するたびにこのコードを手動で入れたくないから」と答えます。

1 つのウィンドウを開くと問題ないようですが、同時に 2 つ目のウィンドウを開くと、2 つ目のウィンドウにツールが重複して表示されます...

では、この特定のケースで MyWindow.js にツールを動的に追加する方法はありますか?

4

1 に答える 1

3

「ツール」をinitComponentに入れます

UIMyWindow = Ext.extend(UIMyWindowUi, {  

initComponent: function() {
  this.tools = [{
               type:'gear',
               handler: function(){
                   // Some code...
               }
    }], 
  UImenuDock.superclass.initComponent.call(this);
于 2011-07-15T13:19:48.683 に答える