刷新余烬模型

时间:2019-03-13 23:55:06

标签: ember.js ember-data

我有一个简单的路由调用

model: function(params) {
  return this.store.find("booking", params.booking_id);
},

访问路线时,可以进行更改,并且我希望下次在同一会话中再次访问该页面时将其重置,除非已保存。现在似乎没有一个简单,直接的替代方法来刷新通过{ reload: true }获得的数据。

我该怎么做?谢谢。

2 个答案:

答案 0 :(得分:0)

要刷新余烬模型,可以使用this.refresh();

要在离开路线时回滚所有属性,可以使用this.controller.get('model').rollbackAttributes();

让我们假设有一条名为post

的路线

在您的routes/post.js

...
export default Route.extend({
  ...
  model: function() {
    ....
  },
  actions: {
    refreshModel: function() {
      this.refresh();
    },
    willTransition() {
      this.controller.get('model').rollbackAttributes();
    }
  }

refreshModel的身份从controller调用this.sendAction('refreshModel')动作

答案 1 :(得分:0)

您的路线具有动态细分。生成到该路线的链接时,可以选择将模型上下文或id传递给该路线。

如果传递模型上下文,则不会触发model()挂钩,并且ember将使用其当前在商店中持有的任何值。如果您传递model.id,则model()挂钩将触发并获取最新数据。

检查到此路由的链接生成,并查看您是否将bookingbooking.id传递到该路由。

https://guides.emberjs.com/release/routing/specifying-a-routes-model/