在Backbone中通过CID设置和获取模型

时间:2013-12-08 17:35:31

标签: javascript backbone.js

我有这个系列:

App.Collection.Pieces = Backbone.Collection.extend({
  model: App.Model.Piece,
  initialize: function() {
    this.add(
      // The `King` model extends the `Piece` model
      new App.Model.King({
        cid: 'wk',
        color: 'white'
      })
    );
  }
});

然后我在视图中有这个代码:

this.white = new App.Collection.Pieces();
console.log(this.white.get('wk'));

我有两个问题:

  1. 如果B延伸A,我可以将模型B添加到A模型的集合中吗?
  2. console.log语句返回undefined。没有设置cid属性的原因是什么?
  3. 感谢。

1 个答案:

答案 0 :(得分:1)

  1. 您可以将任何对象或模型添加到集合中。如果它是一个普通的JS对象,那么为该集合定义的模型将被实例化。 Annotated source

  2. 根据Backbone's documentation,cid会自动分配给所有已创建的模型。查看the annotated source似乎自动生成了cid - 您无法将自定义cid分配给模型。