保存新记录时刷新多个路径模型

时间:2015-08-06 22:56:18

标签: ember.js ember-data

我的路线看起来像这样:

model() {
  return this.store.query('my-model', {
    offset: this.get('offset'),
    limit: this.get('limit')
  })
}

我在/my-models之类的路线中使用它,并渲染模型列表。

然后,在像/my-models/new这样的路线中,我制作并保存一个新模型。但是,当我保存新模型时,模型列表不会更新以反映新模型的新存在。

我认为这是因为store.query没有监控商店,它只从服务器获取。但是,当我尝试store.findAll时,我认为应监视商店的更改,它会返回每条记录,而不仅仅是偏移/限制参数之间的记录。

有没有办法让分页保持正常工作,同时添加新创建的记录会自动添加到列表中?

2 个答案:

答案 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