更改Query Param不刷新路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更改Query Param不刷新路由相关的知识,希望对你有一定的参考价值。

如果查询参数更改,我已在路径中设置查询Param设置以刷新模型。但是当查询参数更改时,qazxsw poi未被调用。知道为什么会这样吗?

setupController

//解决方案感谢alptugd的回复

export default Route.extend({
  queryParams: {
    id: {
      refreshModel: true
    }
  },

  setupController(controller) {
    controller.start(); // fetches data synchronously from api
  }
});
答案

export default Route.extend({ queryParams: { id: { refreshModel: true } }, model() { // Returning a new array/object/value everytime the hook is called, causes the // setupController hook to be called. return []; } setupController(controller) { controller.start(); // fetches data synchronously from api } }); 迫使前往refreshModel的路线,正如预期的那样,你应该期待refreshbeforeModelmodelafterModel钩子。然而; setupController钩子有一个小的区别:

看看setupControllerrefresh中关于Ember's route.jssource code方法的评论。两人都说:

“刷新此路线上的模型和任何子路线,以类似的方式触发relevant API documentationbeforeModelmodel钩子,以便在从其他路线转换时输入路线。当前路线参数(例如afterModel)将被传递到相应的模型钩子,如果返回不同的模型,article_id和相关的路线钩子也将重新开火。“

这意味着;为了在发生setupController的情况下触发setupController;应该从refresh钩子返回一个不同的模型。在你的情况下;你没有任何型号model;因此,hook不会被称为setupController param值变化。

顺便说说;如果你覆盖id钩子,调用super方法是一个好习惯,因为它的唯一目的是将setupController属性保存到model。请查看controller,了解有关此案例的详细说明。

以上是关于更改Query Param不刷新路由的主要内容,如果未能解决你的问题,请参考以下文章

vue通过路由传值及在页面刷新后如何保存值

给URL中添加query 而不刷新页面的方法

解决vue修改路由的查询字符串(query)url不改变,页面不刷新问题

Vue Router 详解

Vue之路由的query传参加密

(尚043) vue_向路由组件传递数据+vue param和query两种传参方式