ember.js 当我在transitionTo()中添加queryParam时,我的ember应用程序完全重新加载

9rbhqvlz  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(158)

我正在根据用户在搜索表单中输入的数据进行搜索,并将此数据作为queryParam重定向到一个路由,这将完全重新加载应用程序。
我这样做过渡:其中*'search'* 是用户输入的数据

this.get('router').transitionTo('private.route1', { queryParams: { search: search } });

在目的地路由的控制器中,我已经声明了这个queryParam

export default Controller.extend({
    queryParams: ['search'],
});

然后我根据这个queryParam执行一个API搜索,一切正常,但是当我对这个route执行transitionTo()时,由于某种原因,符号'?'被添加到我的route路径的开头,这会重新加载页面。
我所期望的结果是,进行了如下所示的转换,并且应用程序没有完全重新加载:

http://localhost:4200/#/private/route1?search=userdata

而真实的的结果是:

http://localhost:4200/?#/private/route1?search=userdata

在路径的开头使用符号'?',这会导致应用程序完全重新加载。

bqf10yzr

bqf10yzr1#

在一遍又一遍地检查代码并尝试不同的用例后,我意识到发生的事情不是ember和它的queryParams的问题,而是在我获取搜索用户数据的表单中,我在做一个本地提交,这刷新了应用程序,并在路径的开头添加了'?'。解决方案:在搜索操作中

actions:{
  search(event){
    event.preventDefault();
    // next code....
  }
}

相关问题