我有一个用Angular 2编写的应用程序,导航在每条路线上应该看起来略有不同。我正在使用NavigationEnd
监听this.router.events.subscribe
它在单击链接时工作正常,但刷新页面或在网址栏中键入路径时,似乎不会触发此方法。
这是我的订阅功能的一部分:
subscribeToEvents() {
this.router.events.subscribe((val) => {
// see also
if (val instanceof NavigationEnd) {
this.getCompanyName();
var rou = val.url.toLowerCase().trim();
console.log("our route", rou);
switch (rou) {
case "/projectlist":
this.currentPage = "projects";
this.page = "Project List";
break;
我已经尝试过控制台记录this.router.url
以查看出现的情况,它只是始终控制日志' /'当我刷新页面时。
答案 0 :(得分:3)
只需在构造函数中调用subscribeToEvents()
即可。它肯定会解决你的问题
答案 1 :(得分:0)
我找到了一个解决方案,我只是在导航栏的ng-init中添加了一个超时,然后this.router.url
获得了正确的路由。
setTimeout(() => {
if (this.router.url === '/projectlist') {
this.currentPage = "projects";
this.page = "Project List"
} else if (this.router.url === '/dashboard') {
this.currentPage = "dashboard";
this.page = "Dashboard";
} else if (this.router.url === '/equipmentlist') {
this.currentPage = "equipment";
this.page = "Equipment"
} else if (this.router.url === '/recipelist') {
... more routes ...
} else {
this.page = "Default";
}
}, 100);