Coach のコンテンツのフレームワークによる管理とビューによる管理
実行時に、Coach のコンテンツ・ボックス内のコンテンツは、ランタイム・フレームワークまたはビューによって管理できます。 デフォルトでは、コンテンツはフレームワークで管理されますが、独自のカスタム動作をコーディングする場合は、ビューによるコンテンツ管理を選択できます。
Coach がレンダリングされる際のフレームワークのデフォルト動作をオーバーライドしたい場合があります。 例えば、ビューが配列であるデータにバインドされている場合、フレームワークは配列内のインデックス・エレメントごとにビューを作成します。 異なるエレメント・セットに対してビューを作成したい場合は、ビューで独自のコンテンツ管理するためのオプションを選択できます。
ビューで独自のコンテンツを管理するためのオプションは、設計時にコンテンツ・ボックスでプロパティーとして設定されます。 オプションを設定するには、以下のようにします。
- ビューを開き、 「レイアウト」に切り替えます。
- エディターでコンテンツ・ボックスをクリックします。
- 「プロパティー」で、「このビューは、ビュー独自のコンテンツを管理します」オプションをクリックします。
- コンテンツを管理するために、
load()などのコールバック・メソッドにカスタム・コードを作成できます。 詳しくは、 管理対象 Coach の表示 を参照してください。
フレームワークによるコンテンツの管理
ビューのコンテンツがフレームワークで管理されている場合、ランタイム・フレームワークは、以下のように、コンテンツ・ボックスのコンテンツを処理します。- コンテンツ・ボックスで配列であるデータ・バインディングが継承されている場合、フレームワークはコンテンツ・ボックスの DOM ノードを n 回 (この n はデータ・バインディング配列のエレメント数です) 複製します。 ビューは、配列内のインデックス・エレメントごとにコンテンツ・ボックス内に作成されます。
- コンテンツ・ボックスで配列ではないデータ・バインディングが継承されている場合、フレームワークは含まれているコンテンツのビューを作成します。
ビューによる Coach の管理
ビューで独自のコンテンツを管理している場合、そのビューでコンテンツ・ボックス内のコンテンツを処理する必要があります。 一般的なシナリオを以下に示します。
- 以下のように、サブビューを初期化してレンダリングします。
- 配列であるデータ・バインディングをコンテンツ・ボックスが継承している場合、ビューは通常、そのコールバック・メソッドのいずれか (
load()など) で以下を実行します。- ビューはコンテンツ・ボックスの DOM ノードを n 回 (この n はデータ・バインディング配列のエレメント数です) 複製します。
- 必要に応じて、初期化ロジックを実行します (複製されたノードのコンテンツの追加/削除/更新/装飾など)。
- フレームワーク・メソッド
this.context.createView()を呼び出します。
- コンテンツ・ボックスで配列ではないデータ・バインディングが継承されている場合、ビューはそのコールバック・メソッドのいずれか (
load()など) で以下を実行します。- 必要に応じて、初期化ロジックを実行します。
- フレームワーク・メソッド
this.context.createView()を呼び出します。
- 配列であるデータ・バインディングをコンテンツ・ボックスが継承している場合、ビューは通常、そのコールバック・メソッドのいずれか (
- コンテンツを動的に追加/削除します。
- コンテンツを追加します (例えば、テーブルに新しい行を追加します)。
- 新しいバインディング・オブジェクトを作成し、それを DataBinding API を使用してバインディング配列に追加します。
- フレームワーク・メソッド
this.context.createView()を呼び出します。
- コンテンツを削除します (例えば、テーブルの行を削除します)。
- 該当する行のバインディング・オブジェクトを直接的または間接的に削除します。
- フレームワーク・メソッド
this.context.deleteView()を呼び出します。
- コンテンツを追加します (例えば、テーブルに新しい行を追加します)。