2011-10-17 5 views
0

にrefernceを取得しますこんにちは、Booksのコンテンツが表示されます(コンポーネントがレンダリングされるなど)が、レンダリングコントロールハンドラは呼び出されません。私はここで間違って何をしていますか?私はこのようになります私の煎茶タッチ2コントローラ、(CoffeeScriptの)からの私の見解への参照を取得したいのですが、自動インスタンス化煎茶タッチ2ビュー

答えて

5

あなたはいずれかのクラスに対してハードコードidを使用しません!

Ext.define('MyApp.view.Books',{ 
    extend: 'Ext.Panel', 
    alias : 'widget.books', 
    config: { 
     html: 'Hello, Books!' 
    }, 
    initialize : function() { 
     // some init code etc.. 
     this.callParent(); 
    } 
}); 

aliasプロパティに注意してください。これは、ビューのインスタンスの参照を取得するのに役立ちます。ビューを参照するとき。あなたのコントローラには、以下のものがあります:

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

    }, 
    . 
    ... 

idプロパティではなくエイリアスまたはxtypeでビューを参照していないことに注意してください。ここで、コントローラ内の他のコントローラのビューやその他のコンポーネントにアクセスする必要がある場合は、利用可能なrefsシステムを利用することもできます。ここで、セレクタプロパティはコンポーネントを取得するExt.ComponentQueryに渡される値である

refs: [ 
    {ref: 'centerPane', selector: 'centerpane'} 
], 

:この場合、あなたは、コントローラ定義の参考文献の配列を定義します。したがって、centerpaneのインスタンスを得ることができます:

this.getCenterPane(); 
+0

ありがとう、これは非常に良い説明です!最近、私はidsを使うべきではないと思ったので、私はそれらの使用をやめましたが、まだ参照を得る方法が分からなかったので、 'name:'プロパティと '.down( '[name = .. 。] ') '、それは明らかにどのように使用されるべきではないかです。素晴らしい答えにもう一度感謝します。 –

+0

私もこれに苦労していました。サンプルプログラムは完全に工夫されており、実際に自動インスタンス化されたビューを実際にどのように保持するかは決して示されません。大きな説明 –

関連する問題