Posted at

reference と ViewController の関係について検証

More than 3 years have passed since last update.

親コンテナの ViewController から、子のビューの reference を参照

main --- list

|- edit

この様な関係で main の中に reference: 'mainbutton' があり、

list には 'mylist' があり、

edit には 'field1' がある。

list ビューと edit ビューに ViewController がない場合は、

main から lookupReference() で、すべてのコンポーネントが参照できる。

しかし、list や edit に対応する ViewController をセットすると、

main の ViewController からは、list や edit のコンポーネントは参照できなくなる。

一方、View (コンテナー: Ext.container.Container) にも lookupReference メソッドが存在する。

コンテナーの lookupReference は、ViewController がセットされているか、

referenceHolder プロパティが true に設定されていなければ使えない。

先ほどの親子関係でやってもると、edit や list の ViewController を外した状態で、main ビューの lookupReference を呼び出してみると、すべてのコンポーネントの参照を取得できた。

次に edit の referenceHoldertrue にして試すと、main からは参照できなくなり、edit ビューからのみ参照できた。

ここまでの動作で、reference を取得する場合には、その参照を保持するビューものであれば参照できる、ということになる。 参照を保持するビューの定義は、ViewController を持っているか referenceHolder であるかである。