我有一些关于将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,而与定义同步对象的位置无关。代码中的这个例子很有用。
感谢您查看此内容。