我的路线看起来像这样:
model() {
return this.store.query('my-model', {
offset: this.get('offset'),
limit: this.get('limit')
})
}
我在/my-models
之类的路线中使用它,并渲染模型列表。
然后,在像/my-models/new
这样的路线中,我制作并保存一个新模型。但是,当我保存新模型时,模型列表不会更新以反映新模型的新存在。
我认为这是因为store.query
没有监控商店,它只从服务器获取。但是,当我尝试store.findAll
时,我认为应监视商店的更改,它会返回每条记录,而不仅仅是偏移/限制参数之间的记录。
有没有办法让分页保持正常工作,同时添加新创建的记录会自动添加到列表中?
答案 0 :(得分:1)
我对此不确定,但如果您使用的是Ember Data 1.13,则可以尝试使用新的重新加载设置。
findAll
的文档(我知道这不是你想要的)说:
store.findAll('user'); //goes to the server the first time
store.findAll('user'); //after that returns from cache, but updates in background
store.findAll('user', { reload: true }); //enforces getting fresh data
store.findAll('user', { backgroundReload: false }); //opts out of background updating
如果您尝试使用backgroundReload: true
query
(作为第三个参数),那么会在后台刷新查询吗?
答案 1 :(得分:1)
保存新模型后,您可以使用push方法。像这样的Smth:
var store = this.get('store');
var newModel = store.createRecord('my-model');
newModel.set('param', 'param value')
.save()
.then(function () { store.push('my-model', newModel); })
文档:http://emberjs.com/api/data/classes/DS.Store.html#method_push