Полный переход после обновления параметров запроса в ember

У меня есть следующий маршрут, который запускает отчет для определенного диапазона дат:

export default Ember.Route.extend({
  model: function(params){
    return this.store.query('report' {
      "report":"my_report",
      "from":params.startDate,
      "to":params.endDate
    });
  },

  setupController: function(controller, model) {
    this._super(controller, model);
    // change format model and save it in rows
    controller.set('model', rows);
  }
});

Теперь мой контроллер выглядит следующим образом:

export default Ember.Controller.extend({
  queryParams:["startDate","endDate"],
  actions:{
    processReport:function(from,to){
      this.transitionToRoute('reports',{
        queryParams :{
          "startDate":from,
          "endDate":to,
          "refreshModel": true
        }
      });
    }
  },
  to:"",
  from:""
});

Шаблон выглядит следующим образом:

From {{bootstrap-datepicker value=to}}
To {{bootstrap-datepicker value=from}}
<button {{action  "processReport" from to}}>Process Report</button>

Итак, когда я нажимаю кнопку, URL-адрес меняется и консоль показывает:

Attempting transition to reports   ember.debug.js:52602 
Transitioned into 'reports'        ember.debug.js:27426 

но страница остается такой же. Как мне полностью перейти на страницу?

2 ответа

Вы должны добавить в свой маршрут конфигурацию queryParams, чтобы сделать полный переход

export default Ember.Route.extend({
  queryParams: {
    startDate: {
      refreshModel: true
    },
    endDate: {
      refreshModel: true
    }
  },
...

А на контроллере вам нужно просто обновить значения "startDate" и "endDate" в настраиваемом действии:

Export default Ember.Controller.extend({
  queryParams:["startDate","endDate"],
  actions:{
      processReport:function(){
        this.set('startDate', this.get('from'));
        this.set('endDate', this.get('to'));
      }

  },
  to:"",
  from:""
});

Это было объяснено в руководствах:

https://guides.emberjs.com/v2.11.0/routing/query-params/

Я понял это самостоятельно, прочитав обновленный API по параметрам запроса по следующей ссылке: https://guides.emberjs.com/v2.3.0/routing/query-params/

Другие вопросы по тегам