Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aurelia嵌套路由器和路由器视图_Aurelia - Fatal编程技术网

Aurelia嵌套路由器和路由器视图

Aurelia嵌套路由器和路由器视图,aurelia,Aurelia,我想在屏幕上有一个课程列表(人为的例子)。单击课程时,它会展开(仍显示课程列表)为选修该课程的学生列表。当我单击一个学生时,它必须展开到学生详细信息的视图中(仍然显示学生列表和课程列表)。等等 所以基本上我想要嵌套路由器,我想 例如,app.js config.map([ {route: "", moduleId: 'no-selection', title: 'Select'}, {route: "course/:course-id", moduleId: 'c

我想在屏幕上有一个课程列表(人为的例子)。单击课程时,它会展开(仍显示课程列表)为选修该课程的学生列表。当我单击一个学生时,它必须展开到学生详细信息的视图中(仍然显示学生列表和课程列表)。等等

所以基本上我想要嵌套路由器,我想

例如,app.js

config.map([
        {route: "", moduleId: 'no-selection', title: 'Select'},
        {route: "course/:course-id", moduleId: 'course',    name: 'course'}
]);
js(注入路由器):

html有自己的路由器视图元素

上面的方法是有效的,但是当我点击一个顶级链接(一门课程)时,内容就会放在内部路由器视图中。更糟糕的是,现在每一个扩展的学生都有一个路由器视图,我该如何管理它


基本上,我找不到任何关于如何做到这一点的文档-子路由器的东西似乎并不完全是我需要的?任何帮助都将不胜感激。

让我们看看这一点,以及如何使用单个路由器实现这一点。这是我可能使用的路由结构

[
  { route: "", moduleId: 'no-selection', title: 'Select'},
  { route: "course/:courseId/:studentId?", moduleId: 'course',    name: 'course'}
]);
studentId
参数是可选的

然后,我将了解如何使用本课程页面,仅根据它在
activate
回调中接收到的参数来完成您想要的一切


我现在没有时间给出一个完整的答案,但希望这能帮助你走上正确的道路

我认为你把任务复杂化了一点。这真的是你需要路由器的原因吗?据我所知,你应该有一堆常规视图。我希望导航上有历史记录,并且能够快速切换到不同的课程/学生等。如果你能建议一种不同的方法来实现这一点。。。我对Aurelia很陌生-可能遗漏了一些明显的东西,您不需要使用嵌套路由器来实现这一点。一个单级路由器可以通过几个组件轻松地处理它。解释这一点需要一段时间,这已经超出了单堆栈溢出问题的范围。我强烈建议你去看看Rob Eisenberg关于Vimeo的中级Aurelia课程。它或多或少地构建了你想要的东西。另外,请记住,一个页面可以有多个指向它的路由,一个页面也可以只使用不同的参数路由到它自己。我会在回答中给出一些提示。我需要为像这样简单的事情做一个中级课程?!?谢谢,我明白你的意思了。不过感觉有点像黑客。我原以为使用路由器很容易,但奥雷利亚的路由器似乎很基本。不知道是什么让它成为黑客。这是一个简单的解决方案,不会创建不必要的复杂体系结构。我本可以向您展示如何使用您已有的设计来实现这一点,但我试图帮助您看到思考问题的不同方式。另一个选择是使用可选参数,而不是两个单独的参数。事实上,我将更新我的答案,使用可选参数。是的,可能不是黑客。只是不像我看到的那样。谢谢你的麻烦。
[
  { route: "", moduleId: 'no-selection', title: 'Select'},
  { route: "course/:courseId/:studentId?", moduleId: 'course',    name: 'course'}
]);