Ember2.8:在transitionToRoute('/ route')上刷新所有内容

时间:2016-10-10 00:18:58

标签: ember.js

因此,我现在有一个纸牌游戏,当完成加载一个模式,带有一个按钮,以转换回主路线。这是单击模态的关闭按钮时调用的操作。

goBackHome() {
  this.transitionToRoute('/games');
},

它确实重定向到请求的路由,但我仍然保留了对后端数据的所有更改。我也试过将模型本身传递给它

goBackHome() {
  this.transitionToRoute('games');
},

基本上,它不会对所有内容进行硬刷新。我想要的是当调用transitionToRoute重新加载路由时,就像我自己输入确切的URL到浏览器一样。

1 个答案:

答案 0 :(得分:0)

我试着写出可行的方法,希望你能选择一个并解决你的问题。

您需要将this.refresh();添加到您的方法或model()中以强制重新加载模型以获取新数据(取决于您需要的内容)!如果你想重新加载整个窗口的位置,我的意思是添加location.reload();

一个例子应该是

model(id){
    var post = this.get('store').find('post', id); // Find the post from the store
    post.reload(); // Force a reload
    return post;  // Return the fetched post NOW and the information will be updated.
  }

此外,您可以在模型中执行其他操作()查看示例:

 model(params) {
    return this.store.findRecord('whatever', params.id, { reload: true });
  }

{ reload: true }强制模型获取新数据,也可以使用findAll实施。

ref:目前我只是使用afterModel挂钩强制重新加载,但重新加载标志再次运行会很好。

所以,您还可以采用另一种方式,即您可以向该函数发送一个参数,然后在路线actions中获取该参数,您可以拥有this.referesh()!重新加载模型。在这种情况下,您需要添加this.sendAction('actionName');和路线actionName(){this.referesh();}