0

私は現在 backbone.js をいじっていて、モデルとコレクションの間の関係を作成しようとして奇妙な動作に遭遇しました。

これが私のモデル/コレクションです

Element = Backbone.Model.extend({
  name: 'element'
});

Elements = Backbone.Collection.extend({
  name: 'elements',
  model: Element
});

Application = Backbone.Model.extend({
  name: 'app',
  initialize: function() {
    this.elements = new Elements(this.get('elements'));
  } 
});

を介して要素を取得すると、この新しい Object が instanceof かどうかを尋ねるapplication.get('elements')' ' が表示されます。falseBackbone.Collection

var gotElements = application.get('elements');
var isCollection = gotElements instanceof Backbone.Collection;

それで、私は何か間違ったことをしていますか、それとも新しい Collection-Instance を作成し、アプリケーションから受け取ったコレクションで満たす必要がありますか?

4

2 に答える 2

0

コレクションを別のモデルに配置する代わりに、対応するビューに配置する必要があります。

var ListView = new Backbone.View.extend({
     initialize:function(){
         this.Elements= new Elements();
         // more stuff to go
     },
     render:function(){
          _.forEach(this.Elements, function(){
         //Do rendering stuff of indivdual elements and get HTML
         });
         //put HTML in the DOM
     }
});

複数のモデルを含むコレクションを含むモデルは必要ありません。

編集: アプリをモデルに配置する代わりに、ビューに配置する必要があります。

于 2013-07-07T16:33:21.940 に答える