Произвольный метод маршрутизации Iron-Router

Возможно ли иметь маршрут, который не отображает какой-либо шаблон, а просто что-то делает?

Это функциональность, которую я ищу:

this.route( {
    path: '/something/:info1/:info2',
    method: function() { 
        // do something with this.params.info1 and this.params.info2
        Router.go('elsewhere');
    },
});

Если нет, есть ли способ реализовать эту функциональность?


person Chet    schedule 29.08.2013    source источник
comment
Вы можете извлечь информацию1 и информацию2 из location.href..   -  person Fabdrol    schedule 25.09.2013


Ответы (1)


Конечно, вы можете переопределить действие по умолчанию в маршруте. Действием по умолчанию для маршрута является метод run RouteController. Вы переопределяете его в версии 0.5.4, указав параметр handler для маршрута. В ветке dev вы просто предоставляете опцию action. Действие по умолчанию отображает основной шаблон, а затем отображает все шаблоны доходности в соответствующих местах. Но ваша функция действия может делать все, что вам угодно, в том числе вообще не отображать никаких шаблонов. Я покажу примеры 0.5.4 и dev:

v0.5.4

this.route({
  path: '/something/:info/:info2',
  handler: function () {
    var info = this.params.info;
    var info2 = this.params.info2;
    this.redirect('elsewhere', {
      //optional context object which could include params
    });
  }
});

ветвь разработки:

this.route({
  path: '/something/:info/:info2',
  action: function () {
    var info = this.params.info;
    var info2 = this.params.info2;
    this.redirect('elsewhere', {
      //optional context object which could include params
    });
  }
});
person cmather    schedule 25.09.2013