1

だから私はこのようなものに見えるオブジェクトを持っています

{
  first_name: 'Matt',
  last_name: 'Damon',
  movies: [{name: 'mov_name1', director: 'Sven'}, {name:'mov_name2', director: 'Joe'}]
}

これを返すエンドポイントがあり、fetch を使用してこのデータを取得し、モデルまたは ItemView に配置します。(これらのオブジェクトのコレクションが本当に必要なため、fetch を使用する必要があるため、コレクションに対して fetch を呼び出します。) ただし、オブジェクトの表現はモデルだけではなく、モデル (または ItemView) である必要があります。このオブジェクトの行を表示すると、モデルとコレクションを含む CompositeView になるため、movies 属性はコレクションである必要があります。私の質問は、モデルでフェッチが呼び出された後、このオブジェクト表現をモデルとコレクションに変換するにはどうすればよいですか?

説明がややこしくてすみません…

4

2 に答える 2

2

コレクションでフェッチを実行し、要素ごとにモデルとコレクションを作成してから、compositeView に渡すことができます

このようなもの

  mycollection = new MyCollection();
  mycollection.fetch();
  mycollection.each(function(item){
      var actorModel = new ActorModel({firstName : item.get('first_name'),
                               lastname: item.get('last_name')});
      var moviesCollection = new MoviesCollection(item.get('movies'));
      var xCompositeView = new XCompositeView({model:xmodel,
                                               collection:moviesCollection});
  });

このようにして、Compositeview はモデルとコレクションを取得し、各ムービーの itemView を使用して適切にレンダリングできます。

お役に立てれば。

于 2013-07-16T04:23:16.687 に答える
0

別のフレームワークを使用しても問題がなければ、backbone-relational と呼ばれるものがあります。モデル間の関係を処理するように設計されています。Backbone-Relationalの Zoo の例を参照してください。

この例では、動物園モデルがあり、モデルには動物モデルで構成される動物コレクションがあります。Zoo モデルで 1 回フェッチすると、プレーンなオブジェクトの配列ではなく、動物コレクションがバックボーン コレクションとして取得されます。

于 2013-07-16T11:38:10.543 に答える