我想创建一条新记录,该记录应属于现有记录。
所以我的想法是使用link-to
助手并将其传递给现有记录,并在相应的路径中创建一个新记录。
{{#link-to "create" this}}create record{{/link-to}}
...
App.CreateRoute = Ember.Route.extend({
model: function (existing) {
return this.store.createRecord('mymodel', {
some : '',
data : '',
existing: existing
});
},
deactivate: function () {
this.currentModel.rollback();
}
});
问题是,当我尝试将新记录的属性绑定到创建表单模板时,我获取现有记录的数据,而不是新创建的记录。
答案 0 :(得分:2)
查看路由中model挂钩的文档。您遇到的问题是,当您使用model
转换到路线时,link-to
挂钩不会被调用。因为您已经将模型作为link-to
的第二个参数,所以它不需要运行。
作为旁注,您不应该操纵路径中的数据,这是控制器的数据。路由应该只是用于设置控制器和模板。
我如何处理这种模式的例子:
App.CreateRoute = Ember.Route.extend({
model: function() {
return getExisting();
}
});
App.CreateController = Ember.ObjectController.extend({
some: '',
data: '',
actions: {
createRecord: function() {
this.store.createRecord('type', {
some: this.get('some'),
data: this.get('data')
}).save();
}
}
});