Ember JS - маршрут от ресурса к маршруту - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь обновить и очистить проект от версии 2.x до версии 3.x, и одна из моих первых проблем заключается в том, что в файле маршрута я получаю this.resouce не определен.Я верю, что это устарело.код выглядит так:

  this.route('objects', function () {
    this.route('search', { path: '/' }, function () {
      this.resource('objects.items', { path: '/:search_id' }, function () {
        this.resource('objects.item', { path: '/item/:item_id'}, function () {
          this.route('general', { path: '/' });
          this.route('tab', { path: '/tab/:tab' });
          this.route('relations');
          this.route('diagram');
          this.route('comments');
          this.route('sources');
          this.route('views');
        });
      });
    });
  });

Я пытался просто изменить ресурс на маршрут и дать атрибут resetNameSpace: true, но это не помогло.Также я пробовал различные комбинации, но без удачи.Кто-нибудь с опытом может помочь мне переделать эту маршрутизацию, чтобы быть совместимым с последней версией Ember?

1 Ответ

0 голосов
/ 05 июля 2018

Поскольку this.resource() на самом деле является старым способом Ember для сброса пространства имен, атрибут resetNameSpace: true действительно делает то же самое!

Поскольку вы использовали this.resource('objects.items'), вы фактически создали сброшенное пространство имен, где objects было маршрутом.

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

this.route('objects', function () {
    this.route('search', { path: '/'});
    this.route('items', { path: '/:search_id'});
    this.route('item', { path: '/item/:item_id' }, function () {
        this.route('general', { path: '/' });
        this.route('tab', { path: '/tab/:tab' });
        this.route('relations');
        this.route('diagram');
        this.route('comments');
        this.route('sources');
        this.route('views');
    });
});

Таким образом, вы все равно можете использовать transitionToRoute("objects.item.general", id).


¹Обратите внимание, что resetNameSpace флаг используется!

...