我正在根据用户在搜索表单中输入的数据进行搜索,并将此数据作为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
在路径的开头使用符号'?'
,这会导致应用程序完全重新加载。
1条答案
按热度按时间bqf10yzr1#
在一遍又一遍地检查代码并尝试不同的用例后,我意识到发生的事情不是ember和它的queryParams的问题,而是在我获取搜索用户数据的表单中,我在做一个本地提交,这刷新了应用程序,并在路径的开头添加了'?'。解决方案:在搜索操作中