Ember公司的数据.为many2many和one2many添加子记录

has*_*shg 3 ember.js ember-data

JSFiddle - http://jsfiddle.net/9gA4y/1/

我有以下型号:

contact => (many2many) => tags
contact => (one2many) => address
Run Code Online (Sandbox Code Playgroud)

Ember数据模型:

App.Contact = DS.Model.extend({
  name: attr('string'),  
  tags: hasMany('App.Tag'),
  addresses: hasMany('App.Address')
});

App.Address = DS.Model.extend({
  street: attr('string'),
  country: attr('string'),
  contacts: belongsTo('App.Contact')
})
App.Tag = DS.Model.extend({
  name: attr('string'),
  contacts: hasMany('App.Contact')
});
Run Code Online (Sandbox Code Playgroud)

我想出了添加新的联系人记录

  • 如何将现有的地址与新创建的联系人关联起来.(一个2多)
  • 如何将现有的标签与新创建的联系人关联起来.(很多2个)
  • 如何删除现有联系人中的关联.

Cyr*_*uck 5

hasMany关系可以通过操纵addObject,addObjectsremoveObject.

contact.get('addresses').pushObject(address);
contact.get('addresses').removeObject(address);
Run Code Online (Sandbox Code Playgroud)

您也可以在地址上设置联系人

address.set('contact', contact);
address.set('contact', null);
Run Code Online (Sandbox Code Playgroud)

此外,您注意到您应该使用单数形式的belongsTo关联(contactcontacts):

App.Address = DS.Model.extend({
  street: attr('string'),
  country: attr('string'),
  contact: belongsTo('App.Contact')
});
Run Code Online (Sandbox Code Playgroud)