我有一条路线,该路线使用余烬来加载多个模型,例如
import Route from '@ember/routing/route';
export default Route.extend({
model(params) {
return Ember.RSVP.hash({
contest: this.store.query('contest',{match: params.matchId}),
match: this.store.findRecord('match', params.matchId)
})
}
});
然后我使用以下代码在控制器中创建竞赛的新实例
newContest() {
this.store
.createRecord('contest', {
name: this.get('contestName'),
fee: this.get('contestFee'),
winning: this.get('contestWinning'),
capacity: this.get('contestCapacity'),
match: this.get('model').match.get('id')
})
.save();
}
问题在于它没有反映在我正在渲染的模板中
{{#each model.contest as |contest| }}
<tr>
<td>{{contest.name}}</td>
</tr>
{{/each}}
我在哪里错了?
答案 0 :(得分:1)
那是因为您使用this.store.query
。此方法仅通过适配器进行查询,而无需进行任何缓存。
更新模型的最简单方法是调用refresh
路由方法。要从控制器执行此操作,您可以在路线中定义refresh
动作,然后在保存新竞赛后从控制器执行this.send('refresh');
。