2011-10-28 13 views
0

への参照を取得する私は、この問題の説明に従っ: Getting a refernce to an auto-instantiated Sencha Touch 2 view煎茶タッチ2:私は2 煎茶タッチで私のコントローラからビューへの参照を取得したいのですが、自動インスタンス化ビュー

しかし、私のコントローラーのthis.controlのレンダリングと表示機能は決して呼び出されません。

これは私のapp.jsです:

Ext.application({ 

    name: 'App', 
    appFolder: 'src', 
    controllers: ['Home'], 

    launch: function() { 
    Ext.Viewport.setActiveItem({xtype: 'homeView'}); 
    } 
}); 

これが私の見解です:

Ext.define('App.view.HomeView', { 

    extend: 'Ext.Panel', 
    alias : 'widget.homeView', 

    config: { 
     html : ['<h1>Sencha Touch Web App</h1>'] 
    }, 

    initialize: function() { 

     this.callParent(); 
    } 

}); 

、これは私のコントローラです:

Ext.define('App.controller.Home', { 

    extend  : 'Ext.app.Controller', 
    views  : ['HomeView'], 

init: function() { 

    this.control({ 

     'homeView' : { 

      render: function() { 
       console.log('Render method called!'); 
      }, 
      show: function() { 
       console.log('Show method called!'); 
      } 
     } 
    }) 
    } 
}); 

誰がどのようなI任意のアイデアを持っています間違ってる?

ありがとうございます。 Franziska

答えて

1

renderハンドラは私のために呼び出されません。私がやる方法は、コンポーネントが表示されるたびに呼び出されるshowのどちらかを使用するか、ビューが初期化されたときにカスタムイベントを使用するかのいずれかです。

Ext.define('App.view.HomeView', { 

    extend: 'Ext.Panel', 
    alias : 'widget.homeView', 

    config: { 
     html : ['<h1>Sencha Touch Web App</h1>'] 
    }, 

    initialize: function() { 
     this.fireEvent('render'); 
     this.callParent(); 
    } 

}); 
+0

あなたの迅速な応答をありがとう。しかし、私のコントローラーにイベントを登録するにはどうすればいいですか?私は 'this.addEvents'、' listeners'、 'this.config'を試しました。それのどれも働かなかった。あなたのためにうまくいくようだが、 'show'ハンドラでさえまだ動作しません。私のための例がありますか? – Ioquai

+0

コントローラで、 'this.control({homeView:{render:function {} {console.log( 'rendering');}}})' –

+0

私はレンダリングハンドラを取得できました作業。ショーハンドラーはまだ解雇されませんが、それは私のニーズにとっては大丈夫です。ご協力いただきありがとうございます。 – Ioquai

関連する問題