1

我有一个项目概述作为入口页面。

当我单击打开项目按钮时,projectId 将传递给 Milesstones 视图。当我在里程碑视图中时,我想使用 projectId 激活任务视图。

如果里程碑/任务是子路线,这种情况很容易实现,但它们不是!所有 3 个视图都属于顶级路由。

AFAIK 使用子路由意味着组件也必须是 ui 层次结构中的子级,因此我不能有 3 个并行/并排视图。

我还能如何实现我想要的?

在此处输入图像描述

4

1 回答 1

0

创建一个服务并将其注入到您的三个组件中。

在此服务中创建方法 setProject(projectID) 和 getProject()。当用户单击打开按钮时,在传递所选项目的服务上调用此方法。

在方法 setProject() 中,将选定的 projectID 存储在类变量中,并使用 EventEmitter 类型的类 var 发出携带选定 projectID 作为有效负载的事件。

在其他两个组件的构造函数中,立即在服务上调用 getProject() 并订阅该 EventEmitter。

这样,只要用户单击里程碑或任务链接,他们就会获得项目 ID。此外,如果用户在其他路线之一处于活动状态时选择了不同的项目,则新值将通过订阅提供给该底层组件。

于 2016-12-28T22:37:20.267 回答