2012-05-01 86 views

回答

5

如果您的關係是,例如,A大廈有許多房間。 A房間屬於大廈:

Building = Backbone.RelationalModel.extend({ 
    relations: [ 
     { 
      type: 'HasMany', 
      key: 'rooms', 
      relatedModel: 'Room', 
      reverseRelation: { 
       key: 'building' 
      } 
     } 
    ] 
}); 

Room = Backbone.RelationalModel.extend(); 

house = new Building({id:1}); 
science_building = new Building({id:2}); 

console.log(house.get('rooms').length); // ==> 0 

living_room = new Room({building:1,name:"Living Room"}); 
lab = new Room({building:2,name:"Chemistry Lab"}); 

console.log(house.get('rooms').length); // ==> 1 
console.log(house.get('rooms').first().get('name')); // ==> "Living Room" 

console.log(science_building.get('rooms').length); // ==> 1 
console.log(science_building.get('rooms').first().get('name')); // ==> "Chemistry Lab" 

reverseRelation屬性指定關係的「belongs_to」部分。

+0

我想我需要在Room模型中定義關係,但它會自動找到它。因此'lab.get('building')'將返回science_building。謝謝 –

+1

這個答案終於讓我得到了骨幹關係。謝謝! –