Я пытаюсь использовать атрибут route-href
внутри представления в дочернем маршрутизаторе. Мой родительский маршрутизатор выглядит так:Использование route-href с дочерними маршрутизаторами
configureRouter(config, router){
config.title = 'Kali';
config.map([
// { route: '', moduleId: 'no-selection', title: 'Select'},
{ route: ['', 'courses'], moduleId: 'courses' }
]);
this.router = router;
}
Мой ребенок маршрутизатор выглядит так:
configureRouter(config, router){
config.map([
{ route: ['', '/'], moduleId: 'no-selection', title: 'Select'},
{ route: '/:id', moduleId: 'courses/course-detail' }
]);
this.router = router;
}
А вот мой маршрут-HREF атрибут ...
<a route-href="route: '', params: { id: course.id }" click.delegate="$parent.select(course.id)">
Когда я использую это, Я ожидаю, что route-href
будет использовать маршруты от дочернего маршрутизатора. Вместо этого я получаю эту стек. Просматривая код, я вижу, что RouteHref называет router.generate
для создания маршрута. router.generate
должен рекурсивно подниматься по иерархии маршрутизатора, так что это не должно быть проблемой. Я не уверен, однако, какой маршрутизатор передается в конструктор route-href
. Я думаю, здесь есть две проблемы: во-первых, я не уверен, получает ли route-href
правильный маршрутизатор, а во-вторых, я не уверен, что или как route-href
обрабатывает выражение с пустым маршрутом.
Стек след:
message: "There is no route named '', params: { id: course.id }"
stack: "Error: There is no route named '', params: { id: course.id }↵ at RouteRecognizer.generate (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/index.js:244:19)↵ at AppRouter.generate (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/router.js:210:38)↵ at Router.generate (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/router.js:207:32)↵ at RouteHref.processChange (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/route-href.js:42:34)↵ at RouteHref.bind (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/route-href.js:30:16)↵ at BehaviorInstance.bind (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/behavior-instance.js:68:35)↵ at View.bind (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/view.js:68:26)↵ at ViewFactory.create (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/view-factory.js:173:18)↵ at BoundViewFactory.create (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/view-factory.js:127:35)↵ at Repeat.processArrayItems (http://localhost:9000/jspm_packages/github/aurelia/[email protected]/repeat.js:132:32)"
Любые идеи? Благодарю.
Пробовали ли вы использовать весь маршрут, а не только ид? – sam
Также не похоже, что он обрабатывает ваш курс. – sam
Да, я пробовал «маршрут: курсы, параметры: {id: course.id}», но это тоже не сработало. Он работал, прежде чем я представил дочерние маршрутизаторы. –