我正在开发一个简单的Angular 2应用程序,我目前拥有的路由是/ login,/ register,/ home和/ profile。
在主应用程序组件上,我有一个<header>
部分,一个<content>
部分和一个<footer>
部分。我目前在<router-outlet></router-outlet>
部分中有content
,但也希望(有时)更改header
和footer
组件中的某些内容当content
部分中有不同的内容时。
我已经研究了子路由(并计划在内容部分中使用某些路由),但我不确定这是否是最好的方法,甚至可能。我所做的儿童路线研究来自John Papa的Angular 2课程,这是他的榜样:http://a2-first-look.azurewebsites.net/examples/router-child/plnkr.demo.html?bust=1463590738850
我还探讨了在Header和Footer组件中订阅路由器的更改,并使用*ngIf
呈现不同的html。这种方法似乎创建了一个全新的服务SO 1,但这个似乎更直接SO 2。我想我可以用原生的Router指令做一些事情吗?
任何帮助或正确方向的观点都将不胜感激!感谢
答案 0 :(得分:1)
你可以将它放入你的跑步区:
$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
SomeService.header.dynamicText = 'Hello, World'
SomeService.footer.dynamicText = 'Contact Us'
})
当然,您也必须将SomeService
传递给您的跑步功能。
更多关于这个方便的小服务here