2

コレクションを渡すことで CompositeView を構築します。コレクションは、URL を介してデータを取得します。ビューを構築する前に、コレクションが作成されるまで待機するために defer/promise 手法を使用しています。

後でコレクションに対して fetch を再度呼び出し、URL を変更します。

驚いたことに、コレクション内の新しいデータで CompositeView が再レンダリングされます。私は何かをしなければならないと思った。

collectionEvents: {
    "sync" : "render"

}

しかし、私は何もしていません。イベントバインディングはまったくありません。マリオネットでは、これを「手動で」処理する必要があると思いました。

これはCollectionView: Automatic Renderingと関係があるようです。これは、モデルやアイテム ビューでも発生しますか? また、チュートリアルなどでバインドについて説明しているのはなぜですか?

ありがとう

――ジャスティン・ワイリー

4

1 に答える 1

1

はい、再レンダリングされるのはコレクションだけです。CompositeView を使用してモデルとコレクションを表示している場合、モデル パーツは再レンダリングされません。そのためのイベントを設定する必要があります。そのため、CompositeView は collectionView と同じ動作をし、データに変更があるたびにコレクションを再レンダリングします。

2番目の質問に対して、モデルが変更されたときにこれは ItemViews では発生しません。これは、アプリケーションのニーズに最適なときに自分で行う必要があります。

于 2013-07-03T15:28:12.590 に答える