我是ember的新手,正在尝试将transitionTo与queryParams结合使用,但是我无法使其正常工作,因此尝试了很多解决方案,但是我无法找出代码的问题所在。这是我要在其间转换的两条路线的代码:

1- index.js:

export default Ember.Route.extend({
 setupController: function(controller, model) {
 this._super(controller, model);
 controller.set("model", model);
 },
 model() {
  return {
   searchQuery: ""
  };
 },
 actions: {
  search() {
   const query = this.controller.get("model.searchQuery");
   this.transitionTo("/search-results", {
     queryParams: {
       q: query
     }
   });
  }
 }
});


2-search-results.js:

export default Ember.Route.extend({
 model() {
  return {
   fieldsInput: []
  };
 },
 setupController: function(controller, model) {
  this._super(controller, model);
  controller.set("model", model);
 }
});


我不知道是否应该添加其他任何内容。我尝试在控制器上设置queryParams,但它也不起作用。另外,我尝试添加

  queryParams: {
   q: ""
  },


到搜索结果的路线,但没有用。

最佳答案

当为transitionTo方法提供url时,您需要通过构造包括queryParams来提供完整的URL。这会起作用

this.transitionTo(`/search-results?q=${query}`);


正如您在评论中提到的那样,您缺少在route中指定queryParams属性。

关于javascript - Ember TransitionTo与queryParams不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47491061/

10-12 12:44