使用 this.get('store').query 时如何重新加载模型?
How to reload the model when using this.get('store').query?
我有一个带有属性名称和城市的用户模型,我一次从服务器获取 25 条记录,因为有很多用户记录
所以我的路线有这个
model(){
return this.get('store').query('user', {page:1}); }
它获取前 25 条记录
现在在我的模板中有一个按钮,单击该按钮会触发获取下 25 条记录的操作,即
action:{
findMoreUsers(){
this.get('store').query('user', {page:2});
} }
现在在浏览器中,在 ember 数据中加载了新记录,即显示 50 条记录
但是当我尝试做类似this.get('model')的事情时,它只给我旧记录而不是新加载的记录
那么如何引用模型以便它向我显示所有旧记录和新记录(50 条记录)?
谢谢
这是因为您没有更改模型本身,这只是向您的服务器请求的结果。我会推荐:
```
page: 0,
beforeModel() {
return this._findMoreUsers();
},
model() {
return this.get('store').findAll('users');
},
_findMoreUsers() {
this.get('store').query('user', { page: this.incrementProperty('page') });
}
```
或者类似的东西。
然后您可以使用 this.store.peekAll('users')
检索所有已加载到商店的用户。如果您需要 更改 模型,您可能需要 this.get('model').pushObjects(...)
.
我有一个带有属性名称和城市的用户模型,我一次从服务器获取 25 条记录,因为有很多用户记录
所以我的路线有这个
model(){
return this.get('store').query('user', {page:1}); }
它获取前 25 条记录
现在在我的模板中有一个按钮,单击该按钮会触发获取下 25 条记录的操作,即
action:{
findMoreUsers(){
this.get('store').query('user', {page:2});
} }
现在在浏览器中,在 ember 数据中加载了新记录,即显示 50 条记录
但是当我尝试做类似this.get('model')的事情时,它只给我旧记录而不是新加载的记录
那么如何引用模型以便它向我显示所有旧记录和新记录(50 条记录)?
谢谢
这是因为您没有更改模型本身,这只是向您的服务器请求的结果。我会推荐:
```
page: 0,
beforeModel() {
return this._findMoreUsers();
},
model() {
return this.get('store').findAll('users');
},
_findMoreUsers() {
this.get('store').query('user', { page: this.incrementProperty('page') });
}
```
或者类似的东西。
然后您可以使用 this.store.peekAll('users')
检索所有已加载到商店的用户。如果您需要 更改 模型,您可能需要 this.get('model').pushObjects(...)
.