可以找到许多示例,说明如何使用按钮或routerLink以角度2在组件之间导航。我想要做的是在发生错误时导航到某个组件,而无需用户操作。像这样:
class MyErrorHandler implements ErrorHandler {
handleError(error) {
this.router.navigate(['/pagenotfound']);
}
}
但是无法在MyErrorHandler构造函数中初始化Router对象。有没有办法解决这个问题并创建一个自动导航系统?
答案 0 :(得分:3)
如果要在错误处理程序类中使用Router
服务,则必须注入它。您可以使用@Injectable
装饰器注册服务来完成此操作。请参阅下面的示例。
@Injectable()
export class MyErrorHandler {
constructor(private router: Router) {
}
handleError(error) {
this.router.navigate(['/pagenotfound']);
}
}
完成此操作后,您可以将MyErrorHandler
服务注入您的组件或您想要使用它的任何其他位置。
有关依赖注入(DI)的更多信息,请参阅: https://angular.io/guide/dependency-injection