2012-03-17 10 views
2

コレクションモデルを親モデルに設定する方法があるのか​​不思議でした。私はバックボーンで始まったばかりなので、私はここから離れているかもしれません.jsしかし、私がやりたいと思う構造をheres。backbone.jsコレクションと複数のタイプのモデル?

Collection 
    model:object 

オブジェクトモデルは、2つの他のサブオブジェクトの親モデルです。

Object 
    ->Image 
    ->text 

2つのサブモデルは、オブジェクトモデルを拡張します。

これは可能ですか?私はここで自分自身を明確にしたいと思う。助けてくれる人に感謝します。

+1

などの呼び出しを避けるかもしれないJohnnyOの答えは、あなたが最初に見にI?を試してみまし継承一部についておそらく多くの条件文が動作とレンダリングを分離するように見えることを除いて、何の問題も見ません。 – fguillen

+0

[特定の種類のBackbone.Jsコレクション](http://stackoverflow.com/questions/6061445/backbone-js-collection-with-specific-types)と関連している可能性があります。 –

答えて

4

はい、これは実行可能です。

私は自分自身でコレクションに別のサブクラスを使用していませんが、hereは、特に「スーパーコレクションのサブクラス」と同様に、バックボーンの継承についてはかなり良い記事です。

継承自体を設定した後、著者はコレクションparseを使用して、対応するモデルを作成します。

Backbone.Collection.extend({ 
    model: Location, 
    parse: function (res) { 
     _.each(res, function (location) { 
      switch(location.phase) { 
       case 'solid': 
        this.add(new Country(location)); 
       case 'liquid': 
        this.add(new Ocean(location)); 
       //... 
      } 
     }, 
     this); 
    } 
}); 

あなたもしたいが、このquestionを見てかかることがありますし、あなたのコードの設計を支援し、

this.constructor.__super__.initialize.apply(this, arguments); 
+0

'var self'の部分は必要ありません。コンテキストを割り当てるための最後のパラメータとして 'this'を渡します。すなわち、_.each(res、func ...、this); – backdesk

+0

ありがとうございます。それを修正した:) – SunnyRed

関連する問題