我想在成功的用户验证后定义从我的登录到我的仪表板的重定向。但是当我在我的登录组件中实现“this.router.navigate(['/dashboard'])”时,它给了我错误:“异常:未定义不是一个对象(评估'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,并且连接存在。但是重定向不起作用。有多个错误。我将尝试在以下内容中显示这些内容:
- 例外:未定义不是对象(评估“this._router”)
- 原始堆栈跟踪:(这里有许多文档和句柄错误)
- TypeError:未定义不是对象(评估“this._router”)
路线配置:
export const rootRouterConfig: Routes = [
{ path: 'dashboard', component: DashboardComponent },
{ path: 'contact', component: ContactComponent },
{ path: '', redirectTo: '/contact', pathMatch: 'full'}
];