Coach のコンテンツのフレームワークによる管理とビューによる管理

実行時に、Coach のコンテンツ・ボックス内のコンテンツは、ランタイム・フレームワークまたはビューによって管理できます。 デフォルトでは、コンテンツはフレームワークで管理されますが、独自のカスタム動作をコーディングする場合は、ビューによるコンテンツ管理を選択できます。

Coach がレンダリングされる際のフレームワークのデフォルト動作をオーバーライドしたい場合があります。 例えば、ビューが配列であるデータにバインドされている場合、フレームワークは配列内のインデックス・エレメントごとにビューを作成します。 異なるエレメント・セットに対してビューを作成したい場合は、ビューで独自のコンテンツ管理するためのオプションを選択できます。

ビューで独自のコンテンツを管理するためのオプションは、設計時にコンテンツ・ボックスでプロパティーとして設定されます。 オプションを設定するには、以下のようにします。
  1. ビューを開き、 「レイアウト」に切り替えます。
  2. エディターでコンテンツ・ボックスをクリックします。
  3. 「プロパティー」で、「このビューは、ビュー独自のコンテンツを管理します」オプションをクリックします。
  4. コンテンツを管理するために、load() などのコールバック・メソッドにカスタム・コードを作成できます。 詳しくは、 管理対象 Coach の表示 を参照してください。

フレームワークによるコンテンツの管理

ビューのコンテンツがフレームワークで管理されている場合、ランタイム・フレームワークは、以下のように、コンテンツ・ボックスのコンテンツを処理します。
  • コンテンツ・ボックスで配列であるデータ・バインディングが継承されている場合、フレームワークはコンテンツ・ボックスの DOM ノードを n 回 (この n はデータ・バインディング配列のエレメント数です) 複製します。 ビューは、配列内のインデックス・エレメントごとにコンテンツ・ボックス内に作成されます。
  • コンテンツ・ボックスで配列ではないデータ・バインディングが継承されている場合、フレームワークは含まれているコンテンツのビューを作成します。

ビューによる Coach の管理

ビューで独自のコンテンツを管理している場合、そのビューでコンテンツ・ボックス内のコンテンツを処理する必要があります。 一般的なシナリオを以下に示します。
  1. 以下のように、サブビューを初期化してレンダリングします。
    • 配列であるデータ・バインディングをコンテンツ・ボックスが継承している場合、ビューは通常、そのコールバック・メソッドのいずれか (load() など) で以下を実行します。
      • ビューはコンテンツ・ボックスの DOM ノードを n 回 (この n はデータ・バインディング配列のエレメント数です) 複製します。
      • 必要に応じて、初期化ロジックを実行します (複製されたノードのコンテンツの追加/削除/更新/装飾など)。
      • フレームワーク・メソッド this.context.createView() を呼び出します。
    • コンテンツ・ボックスで配列ではないデータ・バインディングが継承されている場合、ビューはそのコールバック・メソッドのいずれか (load() など) で以下を実行します。
      • 必要に応じて、初期化ロジックを実行します。
      • フレームワーク・メソッド this.context.createView() を呼び出します。
  2. コンテンツを動的に追加/削除します。
    • コンテンツを追加します (例えば、テーブルに新しい行を追加します)。
      • 新しいバインディング・オブジェクトを作成し、それを DataBinding API を使用してバインディング配列に追加します。
      • フレームワーク・メソッド this.context.createView() を呼び出します。
    • コンテンツを削除します (例えば、テーブルの行を削除します)。
      • 該当する行のバインディング・オブジェクトを直接的または間接的に削除します。
      • フレームワーク・メソッド this.context.deleteView() を呼び出します。