我对SPA很新,我对组织跨区域菜单有疑问,这个菜单在每个区域都有不同的内容。因此,我希望每次用户进入新区域时,菜单内容都会动态更改。
我无法通过@Input()
将任何数据传递给菜单的组件,因为组件只创建一次,并且每次需要时都无法将实际数据传递给组件。
我不想为任何应用程序区域创建唯一的侧面菜单,因为菜单包含所有区域的任何常用元素。
所以我的问题是如何根据当前使用组件更新公共组件的数据。为了说明我的问题:
根组件
template: `
<div>
<side-menu></side-menu>
<div>
<router-outlet></router-outlet>
</div>
</div>
`
我的应用程序的结构是
app
|--components
| |--folder1
| |--folder2
| |--shared
| |--side-menu.component.ts
|
|--services
| |--folder1
| |--folder2
..............
在侧菜单组件中,我只需要渲染需要的元素取决于实际的aaplication状态。也许为每个区域创建几个相同的菜单是更喜欢的方式吗?
我认为这是SPA的常见问题,不仅仅是Angular 2,所以也许你为我的问题提供概念解决方案。