【发布时间】:2014-08-07 10:43:10
【问题描述】:
我有一个简单的 Ember 应用程序,其中包含 2 个相互关联的模型:parent 和 record:
// parent model
export default DS.Model.extend({
records: DS.hasMany('records', { async: true })
});
// record model
export default DS.Model.extend({
parent: DS.belongsTo('parent')
});
记录路由嵌套在父路由下,父模板包含link-to记录和一个outlet来呈现内容。记录模板包含简单的{{#each}}循环。
这里是负责设置模型的记录索引路由:
// records index route
export default Ember.Route.extend({
model: function() {
return this.modelFor('parent').get('records');
}
});
当我加载parent/records 路由时,所有记录都可以正常加载/渲染。当我尝试创建新记录时,问题就开始了;我在记录索引控制器中执行的操作:
// records index controller
export default Ember.ArrayController.extend({
needs: ['parent'],
actions: {
createRecord: function() {
var newRecord = this.store.createRecord('record', {
parent: this.get('controllers.parent.model')
});
newRecord.save();
}
}
});
创建新记录后,它不会出现在我的记录索引模板中。如果我打开 Ember 检查器,我可以在那里看到记录,它甚至分配了正确的父记录。
这是我在创建记录后从服务器得到的答案:
{ "record": { "id": 1, "parent_id": 1 }}
我认为问题是因为记录索引路由或来自服务器的响应;如果我像这样更改路线,新记录会在创建后按预期显示(尽管这不是我想要的;我只想要属于父记录的记录):
// records index route
export default Ember.Route.extend({
model: function() {
return this.store.find('record');
}
});
我正在使用 Ember 1.6.1 和 Ember Data beta 8。有什么想法可能有问题吗?
【问题讨论】:
标签: ember.js