我想在用户验证成功后定义从登录到我的信息中心的重定向。但是当我在我的登录组件中实现“this.router.navigate(['/ dashboard'])”时,它给了我错误: “例外:undefined不是一个对象(评估'this.router')”
以下是我实现该功能的方法:
export class ContactComponent implements OnInit {
contactForm: FormGroup;
errorMsg:string = '';
constructor(private formBuilder: FormBuilder, private _router: Router) {
this._router = _router;
}
ngOnInit() {
this.contactForm = this.formBuilder.group({
username: ['', Validators.required],
password: ['', Validators.required],
});
DBEventProxy.instance(); // Init Eventbus
}
submitForm(): void {
DBEventProxy.instance().dbevent.login(this.contactForm['username'], this.contactForm['password'], this.loggedIn, this.failed);
}
loggedIn(): void {
this._router.navigate(['/dashboard']);
console.log("success");
DBEventProxy.instance().dbevent.register("disconnected", function (message) {
console.log("Client disconnected: " + JSON.stringify(message));
});
DBEventProxy.instance().dbevent.register("status", function (message) {
console.log("Client reconnected: " + JSON.stringify(message));
});
DBEventProxy.instance().dbevent.register("routeravailable", function (message) {
console.log("Router Available: " + JSON.stringify(message));
});
DBEventProxy.instance().dbevent.register("routerunavailable", function (message) {
console.log("Router Unavailable: " + JSON.stringify(message));
});
DBEventProxy.instance().dbevent.listen();
DBEventProxy.instance().dbevent.send({msgtype: "dashboardready"});
}
failed(message: string): void {
console.log("failed: " + message);
}
}
希望,有人可以帮助我!
更新: 使用我的登录信息登录时出错。我从服务器获得了ConnectReply并且存在连接。但重定向不起作用。有多个错误。我将尝试显示以下内容:
路由配置:
export const rootRouterConfig: Routes = [
{ path: 'dashboard', component: DashboardComponent },
{ path: 'contact', component: ContactComponent },
{ path: '', redirectTo: '/contact', pathMatch: 'full'}
];
答案 0 :(得分:2)
从构造函数中删除此行:
this._router = _router;
在TypeScript中,当您将构造函数的参数声明为public
或private
时,将为您设置class属性。
在this._router
不符合预期的上下文中调用this
之类的声音。在submitForm
方法中,尝试更改
this.loggedIn
到
()=>{this.loggedIn()}
答案 1 :(得分:0)
试试这个
this._router.navigate(['dashboard']);
n路线。
export const rootRouterConfig: Routes = [
{ path: '', component: ContactComponent},
{ path: 'dashboard', component: DashboardComponent },
{ path: 'contact', component: ContactComponent },
{ path: '**', redirectTo: '' }
];