我需要在angular 4 app中实现全局错误处理.它是ErrorHandler一种机制,适用于某些情况,但并非适用于所有情况.例如:当我们遇到一些严重错误时,比如丢失模板或其他东西,请ErrorHandler忽略它.当我使用错误的网址模板时,我得到Zone.js错误:
@Injectable()
export class CommonErrorHandler implements ErrorHandler {
constructor(private injector: Injector) {
}
public handleError(error: any): void {
console.log("error", error);
}
}
Run Code Online (Sandbox Code Playgroud)
Zone.js不会抛出异常,它只是控制台错误,所以window.onerror也不起作用.
错误处理程序
providers: [
AuthGuard,
{ provide: ErrorHandler, useClass: CommonErrorHandler }
}
Run Code Online (Sandbox Code Playgroud)
在app.module中注册:
@Injectable()
export class CommonErrorHandler implements ErrorHandler {
constructor(private injector: Injector) {
}
public handleError(error: any): void {
console.log("error", error);
}
}
Run Code Online (Sandbox Code Playgroud)
UPD plnkr示例添加:
我在Angular 4应用程序中使用了一些后端渲染模板.登录后我需要重新加载这些模板.可以请别人帮忙吗?我试过类似的东西
import { Component, Compiler } from '@angular/core';
this.compiler.clearCache();
this.compiler.compileModuleAndAllComponentsAsync(SharedModule);
Run Code Online (Sandbox Code Playgroud)
我看到,该模板在网络工具中重新加载,但Angular组件不会呈现.