使用ember-data basic-Adapter创建记录

时间:2013-03-23 13:35:50

标签: ember-data

我有一些关于将basicAdapter api用于createRecord的问题。假设我有两个模型,如下所示,我想创建父记录,等待响应,然后创建一个子记录,这是可行的方法:

App.Contact = DS.Model.extend({
  address: DS.belongsTo("App.OneChild") 
});

App.Address = DS.Model.extend({
  street: DS.attr("string")
});

然后我在routes模型钩子或模型中创建记录。

contact = App.Contact.sync = {
   createRecord: function(contact, process) {
    process(contact).save();
  });
},

contact.on('didCreate', async(function() {
 address = App.Address.sync = { 
    createRecord: function(address, process){
     process(address).save();
    });
 }
});

问题2

我也可以像这样做一个嵌套的帖子。这不是真正的代码,我只是通过他们的博客文章 here修改了用于制作ajax getJson查找请求的代码

  App.Contact.sync = {
   createRecord: function(contact, process) {
    $.post("/contacts/1/addresses/create", { contact_name: id   }).then(function(contact) {        
     process(contact)                 
      .primaryKey('contact_name')
      .camelizeKeys()
      .save();
     });
  }

问题3

另外,在调用createRecord之前,我总是需要如上所述定义同步对象,如果是这样,这是否意味着我只能从定义了同步功能的模型中调用createRecord。或者我仍然可以从路由器或控制器调用createRecord,而与定义同步对象的位置无关。代码中的这个例子很有用。

感谢您查看此内容。

0 个答案:

没有答案