1

我正在根据用户在搜索表单中输入的数据进行搜索,并将此数据作为 queryParam 重定向到路由,这会完全重新加载应用程序。

我进行这样的转换:其中“搜索”是用户输入的数据

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

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

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

然后我根据这个 queryParam 进行 API 搜索。一切正常,但是当我transitionTo()对这条路线进行操作时,由于某种原因,该符号'?'被添加到我的路线路径的开头,这会重新加载页面。

我期望的结果是转换使 url 看起来像这样,并且应用程序没有完全重新加载:

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

而真正的结果是:

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

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

4

1 回答 1

0

在一次又一次地查看代码并尝试不同的用例之后,我意识到发生的事情不是 ember 及其 queryParams 的问题,而是在获取用户数据以进行搜索的表单中,我正在执行本机提交和这刷新了应用程序并添加了“?” 到路径的起​​点。解决方案:在搜索操作中

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

于 2019-09-20T19:04:31.740 回答