Iは、動的に構成されているコントローラ/ビューのセットを有するようにそれぞれが、「セレクタ」リスト及び「コンテナ」を有するそのような容器は、別のセレクタ+コンテナの対を有することができ、。同じルートセレクタ+コンテナコントローラのインスタンスです。ComponentQueryセレクタのみ
これは、コントローラ(抽象クラス)の見出しの定義である:
Ext.define('MyApp.controller.explorer.Base', {
extend: 'Ext.app.Controller',
refs: [
{ref: 'explorerContainer', selector: '[itemId="explorerContainer]'},
{ref: 'explorerSelector', selector: '[itemId="explorerSelector]'}
],
事は、私はそのように私のコントローラの唯一の子要素に一致するようにComponentQueryセレクタがどうあるべきか分からないですitemId。 [itemId = "explorerContainer"]を使用してコンポーネントに一致させることで、コンポーネントツリー内の一番上のコンテナに応答するので、グローバルに行います。
私はExtJS 3で行っていましたが、myComponent.getComponent( '...')を使用して子要素にアクセスしましたが、今はgetComponent()がなく、ExtJS 4で同等のものを見つけることができませんでした。
ありがとうございます。
はい、私はコントローラーとビューを混在させました。私はMVC(実際にはMVP)を持っていて、コントローラーとビューは常に一緒になっています。 私はComponentQueryセレクタ構文の ">"演算子を理解していますが、それはグローバルであるため動作しませんし、子供たちの深さもあらかじめ知っていません(動的に生成されたGUIだと思います)。 私のビューの構成では、セレクタ(S)とコンテナ(C)を以下のように構成することができます。 ViewPort(S、C(S、C(S、C 。 – emaringolo
深さがわからない場合は、 "viewport mycontainer [property = value]"を使用してください – dbrin
しかし、どのプロパティが異なるかわからない場合はどうすればよいですか?私はすべてのインスタンスにタグをつけたくないので、このSelector + Containerのペアはそれ自体について知っていて、他のものに埋め込むことができ、必要に応じて深くできるべきです。それは私がExtJS4で同じことをする方法を知らないのですが、私がSmalltalkで作業してきた共通のMVC/MVPパターンですが、私の答えは私が探していたものでした。 – emaringolo