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

Setting and getting models by CID in Backbone

本文关键字:设置 获取 模型 CID Backbone      更新时间:2024-04-26

我有这个集合:

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属性

谢谢。

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

  2. 根据Backbone的文档,cid会自动分配给所有创建的模型。查看带注释的源代码,cid似乎是自动生成的——您不能将自定义cid分配给模型。