骨干关系,在模型中使用关系时保留外键id

时间:2013-08-07 14:33:55

标签: backbone.js backbone-relational

我有代码与关系的工作示例,但缺乏 - 主干用相关模型替换我的外国id,我想保留作为外国id并用新密钥添加相关模型..是否可能?< / p>

在以下示例中,engineId将替换为相关模型。是否可以将engineId作为关键型'engine'保持为相关模型?

window.Car = Backbone.RelationalModel.extend({
  defaults : {
    id     : null,
    brand  : null,
    engineId : null,
  }
});

window.Engine = Backbone.RelationalModel.extend({
  defaults : {
    id : null,
    type : null,
  },
  relations: [{
    type         : 'HasMany',
    key          : 'cars',
    relatedModel : 'Car',
    reverseRelation: {
      key: 'engineId',
    }
  }]
});

var engines = new Backbone.Collection([
  {id : 1, type : 'electric'},
  {id : 2, type : 'diesel'},
], {model: window.Engine});

var cars = new Backbone.Collection([
  {id : 1, brand : 'Toyota', engineId : 2},    
  {id : 2, brand : 'Ford', engineId : 2},    
  {id : 3, brand : 'Tesla', engineId : 1},    
], {model: window.Car});

cars.each(function(car){
  console.log(car.get('id'), car.get('brand'), car.get('engineId').get('type'));
});

1 个答案:

答案 0 :(得分:0)

你有什么理由不能从引擎模型中获取id吗?例如

car.engine.get('id')