Маршрут Ember с динамическим именем сегмента


Я только начинаю с Ember JS и Ember CLI и пытаюсь разобраться в этой проблеме маршрутизации. У меня есть групповая модель, которая имеет много игровых моделей. С помощью следующего маршрута я могу отображать игры просто отлично из URL группы:

Router.map(function() {
  this.resource("groups", function() {
    this.route('show', {path: ':group_id/show' });
  });
});

Это приводит к URL-адресу в виде:

http://localhost:4200/groups/1/show
Предположим, что одно из названий группы - "Волшебники". Я хотел бы иметь возможность построить URL-адрес в следующем виде и отобразить все игры, которые принадлежат "wizards":
 http://localhost:4200/wizards

Любые советы: оцененный.

1 2

1 ответ:

Как указывает @blessenm в комментариях, ваш маршрутизатор изменится с

Router.map(function() {
  this.resource("groups", function() {
    this.route('show', {path: ':group_id/show' });
  });
});

К

Router.map(function() {
  this.resource("group", { path: ':group_name'});
});

Второй параметр для this.resource() или this.route() является необязательным. Если вы ничего не передаете-он принимает то же имя, что и ваш маршрут / ресурс (группы, в вашем случае). Если вы передаете объект, который имеет ключ path: - вы указываете, что такое url-адрес маршрута, включая динамический сегмент. Смотрите здесь для документации Ember по этому вопросу.