0

以下は、ネストされたツリー モデルを説明するコードと、json のサンプル データです。blocks提供された でリセットするにはどうすればよいdataですか?

var Block, Blocks, data, blocks;

Block = Backbone.Model.extend({
  initialize: function() {
    this.blocks = new Blocks;
  }
});

Blocks = Backbone.Collection.extend({
  model: Block
});

data = [
  {
    id: 1,
    blocks: [
      {id: 2, blocks: [{id: 3}]}, {id: 4}
    ]
  },
  {
    id: 5
  }
];

blocks = new Blocks;
4

1 に答える 1

0
var Block, Blocks, data, blocks;

Block = Backbone.Model.extend({
  initialize: function() {
    // access 'blocks' via attributes
    // and initialize collection by passing the attributes in
    this.attributes.blocks = new Blocks(this.attributes.blocks);
  }
});

Blocks = Backbone.Collection.extend({
  model: Block
});

data = [
  {
    id: 1,
    blocks: [
      { id: 2, 
        blocks: [
          { id: 3 }
        ]
      }, 
      { id: 4 }
    ]
  },
  {
    id: 5
  }
];

// initialize blocks by passing 'data' in
blocks = new Blocks(data);​

さて、属性は初期化の前に保存されているので、初期化関数をattributes呼び出して、 (以前はあった)との取り違えがないことを確認する必要があります。this.attributes.blocksthis.blocks

blocksまた、コンストラクターにデータを渡して初期化する必要があります。これは、他のすべてのインスタンスBlocks、つまり、各インスタンス内に格納されているインスタンスでも同じですBlock

于 2012-11-19T13:04:26.467 に答える