首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >余数-数据。为many2many和one2many添加子记录

余数-数据。为many2many和one2many添加子记录
EN

Stack Overflow用户
提问于 2013-03-17 06:49:50
回答 2查看 1.2K关注 0票数 3

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

I有以下模型:

代码语言:javascript
复制
contact => (many2many) => tags
contact => (one2many) => address

Ember数据模型:

代码语言:javascript
复制
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')
});

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

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-19 17:58:18

hasMany关系可以通过addObjectaddObjectsremoveObject进行操作。

代码语言:javascript
复制
contact.get('addresses').pushObject(address);
contact.get('addresses').removeObject(address);

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

代码语言:javascript
复制
address.set('contact', contact);
address.set('contact', null);

此外,您还注意到,对于belongsTo关联(contact而不是contacts),应该使用单数形式:

代码语言:javascript
复制
App.Address = DS.Model.extend({
  street: attr('string'),
  country: attr('string'),
  contact: belongsTo('App.Contact')
});
票数 5
EN

Stack Overflow用户

发布于 2013-03-17 19:00:51

尝试:

代码语言:javascript
复制
var contact = App.Contact.find(1),
    address = App.Address.find(1),
    tag = App.Tag.find(1);

contact.get('addresses').addObject(address);
contact.get('tags').addObject(tag);

this.get('store').commit(); //saves address and tag to contact

contact.get('tags').removeObject(tag);

this.get('store').commit(); //removes tag from contact
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15458301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档