我有几个关于使用 basicAdapter api 来创建记录的问题。假设我有两个模型,如下所示,并且我想创建父记录,等待响应然后创建子记录,这是这样做的方法:
App.Contact = DS.Model.extend({
address: DS.belongsTo("App.OneChild")
});
App.Address = DS.Model.extend({
street: DS.attr("string")
});
然后我在路由模型钩子或模型中创建记录。
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
我也可以做一个这样的嵌套帖子。这不是真正的代码,我只是修改了代码,以便从他们的博客文章中发出 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,而与定义同步对象的位置无关。代码中的一个示例将很有用。
谢谢你看这个。