Мой router.js правильный? - PullRequest
0 голосов
/ 17 мая 2018

Привет. Я получаю сообщение об ошибке UnrecognizedUrl, когда пытаюсь получить доступ к своему маршруту в браузере до dashboard/posts/id/comments. Ниже мой router.js Я хотел бы спросить, является ли мой маршрутизатор wrong или кто-то может сказать мне правильный подход

this.route('dashboard', function() {
  this.route('posts', function() {
    this.route('show', { path: ':post_id' }, function() {
      this.route('comments', { path: ':post_id/comments'}, function() { });
    });
  });
});

Однако, если я добавлю {{outlet}} в свой файл ресурсов app/pods/dashboard/posts/show/template.hbs, он покажет содержимое, которое я положил на app/pods/dashboard/posts/show/comments/template.hbs, когда я изменил свой router.js на

  this.route('dashboard', function() {
    this.route('posts', function() {
      this.route('show', { path: ':post_id' }, function() {
        this.route('comments');
      });
    });
  });

Моя цель - показать содержание app/pods/dashboard/posts/show/comments/template.hbs на другой странице, которая в URL браузера должна быть dashboard/posts/id/comments

1 Ответ

0 голосов
/ 17 мая 2018

Это должно быть похоже на

this.route('dashboard', function() {
  this.route('routeA', function() {
    this.route('childRouteA', { path: '/:childRouteA_id' }, function() {
      this.route('childRouteAb');
    });
  });
});

Например: панель мониторинга / routeA / id / childRouteAb

Если childRouteAb является динамическимid тогда, это должно быть похоже на

this.route('dashboard', function() {
  this.route('routeA', function() {
    this.route('childRouteA', { path: '/:childRouteA_id' }, function() {
      this.route('childRouteAb', { path: '/:childRouteAb'});
    });
  });
});

Пример: панель мониторинга / routeA / id / id2

Если вам нужен URL для указаниятип идентификатора перед идентификатором, вы можете сделать это следующим образом.

this.route('dashboard', function() {
  this.route('routeA', function() {
    this.route('childRouteA', { path: '/childRouteA/:childRouteA_id' }, function() {
      this.route('childRouteB', { path: '/childRouteB/:childRouteB_id'});
    });
  });
});

Пример: панель инструментов / routeA / childRouteA / id1 / childRouteB / id2

...