Ember.js 是否在创建新记录时不更新Emberjs视图?
我有一个使用ember散列加载多个模型的路由,比如Ember.js 是否在创建新记录时不更新Emberjs视图?,ember.js,ember-data,Ember.js,Ember Data,我有一个使用ember散列加载多个模型的路由,比如 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.
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)
})
}
});
我使用下面的代码在controller中创建了一个新的contest实例
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}}
{{{{#每个模型.contest作为| contest}
{{contest.name}
{{/每个}}
这哪里出了问题?这是因为您使用了
this.store.query
。这个方法只是通过适配器进行查询,没有任何缓存
更新模型的最简单方法是调用route方法。要从控制器执行此操作,您可以在路由中定义刷新
操作,然后从控制器执行此操作。发送('refresh')代码>保存新竞赛后