用于库@ angular / router的角度2。 this.router.subscribe似乎不再存在了吗?
它曾经在路由器弃用的旧版本上工作,但现在它似乎没有。 有谁知道它的变化呢?
这是我当前的代码
import {Component} from '@angular/core';
import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgIf, NgClass} from '@angular/common';
import {Router, ROUTER_DIRECTIVES, Routes } from '@angular/router';
@Component({
moduleId: module.id,
selector: 'HeaderNavigation',
providers: [],
templateUrl: 'header.html',
directives: [NgIf, NgClass, ROUTER_DIRECTIVES]
})
export class HeaderNavigation{
router : Router;
isContactUs: boolean = false;
isBlog: boolean = false;
isSignUp: boolean = false;
isJobs: boolean = false;
constructor(router: Router){
this.router = router;
this.router.subscribe((currentRoute) => {
this.isContactUs = false;
this.isBlog = false;
this.isSignUp = false;
this.isJobs = false;
if(currentRoute === "contact")
this.isContactUs = true;
if(currentRoute === "blog" || currentRoute.substring(0, 4) === "blog")
this.isBlog = true;
if(currentRoute === "login")
this.isSignUp = true;
if(currentRoute === "newJobs" || currentRoute.substring(0, 6) === "newJob")
this.isJobs = true;
})
}
}
答案 0 :(得分:1)
现在是
this.router.changes.subscribe(
并且它不提供任何值(仅null
),它只会通知路线更改。
要获取当前路线注入Location
并从那里获取path()
。
如果您刚刚开始迁移到新路由器,我建议继续使用router-deprecated
,可能会再次更换路由器。
答案 1 :(得分:1)
这是改为
的内容this.router.changes.subscribe(()=> {
})