【发布时间】:2015-05-10 16:16:22
【问题描述】:
我正在尝试在子路由器的视图中使用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;
}
这是我的 route-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/route-recognizer@0.4.0/index.js:244:19)↵ at AppRouter.generate (http://localhost:9000/jspm_packages/github/aurelia/router@0.8.0/router.js:210:38)↵ at Router.generate (http://localhost:9000/jspm_packages/github/aurelia/router@0.8.0/router.js:207:32)↵ at RouteHref.processChange (http://localhost:9000/jspm_packages/github/aurelia/templating-router@0.12.0/route-href.js:42:34)↵ at RouteHref.bind (http://localhost:9000/jspm_packages/github/aurelia/templating-router@0.12.0/route-href.js:30:16)↵ at BehaviorInstance.bind (http://localhost:9000/jspm_packages/github/aurelia/templating@0.11.0/behavior-instance.js:68:35)↵ at View.bind (http://localhost:9000/jspm_packages/github/aurelia/templating@0.11.0/view.js:68:26)↵ at ViewFactory.create (http://localhost:9000/jspm_packages/github/aurelia/templating@0.11.0/view-factory.js:173:18)↵ at BoundViewFactory.create (http://localhost:9000/jspm_packages/github/aurelia/templating@0.11.0/view-factory.js:127:35)↵ at Repeat.processArrayItems (http://localhost:9000/jspm_packages/github/aurelia/templating-resources@0.11.0/repeat.js:132:32)"
有什么想法吗?谢谢。
【问题讨论】:
-
您是否尝试使用完整路由而不是单独使用 id ?
-
另外它看起来不像是在处理你的 course.id ?
-
是的,我试过
route: courses, params: { id: course.id },但也没有用。在我引入子路由器之前它确实有效。 -
这根本不起作用
标签: javascript aurelia