Как программно переходить между маршрутами с помощью нового маршрутизатора Ember.js

Вопрос:

Как вы программно переходите на новый маршрут, используя новый маршрутизатор Ember.js?

Фон / Контекст

С помощью старого маршрутизатора Ember.js вы можете программно переходить между маршрутами / состояниями, используя маршрутизатор.send метод:

//OLD Router Syntax
App = Ember.Application.create({
  Router: Ember.Router.extend({
    root: Ember.Route.extend({
      aRoute: Ember.Route.extend({
        route: '/',
        moveElsewhere: Ember.Route.transitionTo('bRoute')
      }),
      bRoute: Ember.Route.extend({
        route: '/someOtherLocation'
      })
    })
  })
});
App.initialize();

Программный переход:

App.get('router').send('moveElsewhere');

Учитывая новый маршрутизатор Ember.js (ниже), как мы можем сделать то же самое?

//NEW Router Syntax
App.Router.map(function(match) {
  match('/').to('aRoute');
  match('/someOtherLocation').to('bRoute');
});
Работа вокруг (плохое решение?)

Это может'не так ли?

window.location = window.location.href + "#/someOtherLocation";
Решения, которые неКажется, что работает с новым маршрутизатором:

1) вызываяsend метод наApp.router пример

> App.router.send("moveElseWhere")
TypeError: Cannot call method 'send' of undefined

2) Явное объявление маршрута и установка события

App.ARoute = Ember.Route.extend({
  events: {
    moveElseWhere: function(context){
       this.transitionTo('bRoute');
    }
  }
);

App.UploadRoute.moveElseWhere()
TypeError: Object (subclass of Ember.Route) has no method 'moveElseWhere'

Примечание: на момент написанияДокументация по маршрутизатору Ember.js до сих пор относится к старому маршрутизатору, где какEmber.js Руководство по маршрутизатору относится к новому роутеру

Ответы на вопрос(4)

Ваш ответ на вопрос