Невозможно выполнить переход: ошибка "больше объектов контекста передано, чем динамических сегментов" неверна

Я использую Ember 3, и у меня возникла проблема с использованием сервиса Router с динамическими сегментами. В моем компоненте я использую службу маршрутизатора для transitionTo дочерний маршрут по клику, но я получаю эту ошибку:

Ошибка: передано больше объектов контекста, чем динамических сегментов для маршрута: data.images.image

Это в компоненте js, где я использую transitionTo и передаю один параметр для одного динамического сегмента:

router: service(),
actions: {
    navToSubpage() {
        // this.image is a single Ember Data record/object
        this.router.transitionTo('data.images.image', this.image)
    }
},

Это от моего маршрутизатора, который имеет вложенные маршруты с одним динамическим сегментом:

Router.map(function() {
  this.route('data', function() {
    this.route('images', function() {
      this.route('image', {path: '/image_id'});
    });
  });
});

Что я делаю неправильно? Ошибка не имеет смысла для меня в этом случае.

1 ответ

Мне не хватало : до image_id в моем роутере. Поэтому роутер не распознал image_id как динамический сегмент, так что мой transitionTo было интерпретировано как наличие слишком большого количества параметров (1 вместо 0). Это не имеет никакого отношения к службе маршрутизатора.

Это исправленный маршрутизатор:

Router.map(function() {
  this.route('data', function() {
    this.route('images', function() {
      this.route('image', {path: '/:image_id'});
    });
  });
});
Другие вопросы по тегам