Магистральная реляционная связь, сохраняйте идентификаторы внешних ключей при использовании отношений в моделях.

у меня есть рабочий пример кода с отношениями, но есть недостаток - магистраль заменяет мой внешний идентификатор связанной моделью, я хотел бы сохранить внешний идентификатор и добавить связанную модель с новым ключом. возможно ли это?

В следующем примере engineId будет заменен соответствующей моделью. Можно ли сохранить как engineId связанную модель с ключом «двигатель»?

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'));
});

person avasin    schedule 07.08.2013    source источник
comment
Любые решения этой проблемы?   -  person Akshay Rawat    schedule 04.11.2013


Ответы (1)


Есть ли причина, по которой вы не можете просто получить идентификатор из модели двигателя? Например.

car.engine.get('id')
person Andru    schedule 03.10.2013