【发布时间】:2017-11-01 01:41:26
【问题描述】:
我正在尝试学习 Angular,为此我创建了一个像应用程序这样的小文件浏览器。它有两个组件,布局如下:
------------------------------------
- - -
- [DirectoryList] - [Details] -
- - -
- - -
------------------------------------
- DirectoryList 组件显示当前选定目录中的文件和文件夹列表。单击文件将其选中并在详细信息组件(共享服务)中显示详细信息。双击文件夹将其打开并更新 DirectoryList 以显示其内容。
- 详细信息组件显示有关当前选定文件的信息。
我想做的是让 DirectoryList 组件根据 url 的路径或查询字符串更改其当前打开的文件夹和选定的项目,但我不知道该怎么做。我基本上只是希望 DirectoryList 组件在路径更改时做出反应并相应地更新其视图,如下所示:
url: http://myapp/root/sub1/sub2 <- Opens the folder sub2 in DirectoryList
url: http://myapp/root/sub1/sub2/file.txt <- Opens the folder sub2 and the details for file.txt
我已经阅读了 Angular 中的路由机制,但我找不到这样做的方法(在我看来应该很简单)。每个配置似乎都表明我必须将路由与组件结合起来,并将该组件显示在 <routing-link> 容器中。但是,我所有的路线都使用完全相同的组件,因此不需要这样的容器。我唯一想要的是让 DirectoryList 在路径发生变化时得到通知,并相应地更新自身和 Details 组件(共享服务)。
我在这里误解了一些基本的东西吗?这可以通过简单的方式实现吗?
【问题讨论】:
-
我想你正在寻找这个github.com/vsavkin/router_mailapp
-
@RobinDijkhof 感谢您的提示。我去看看。
-
您可以使用命名路由器插座。看看this one
-
@ulubeyn 我猜,但我希望我根本不需要使用任何路由插座。原因是根本不需要更换我的组件。我基本上想要的只是根据路径和查询字符串更新现有组件。