我想創建一個自定義彈出窗口,以便在任何http error
出現時通知用戶並顯示自定義消息。要做到這一點,我創建一個自定義event handler
看起來像:當錯誤發生時顯示自定義消息CustomErrorHandler
@Injectable()
export class CustomErrorHandler extends ErrorHandler {
constructor(private errorHandlerService: ErrorHandlerService){
super(false);
}
public handleError(error: any): void {
super.handleError(error);
if (error.status == 500){
this.errorHandlerService.setStatus = error.status;
alert('error 500');
}
}
}
而且我已經創建了一個service
它只有一個歡迎使用屬性 - status
:
@Injectable()
export class ErrorHandlerService {
private status: any;
get getStatus(){
return this.status;
}
set setStatus(status : any){
this.status = status;
}
}
所以這是保持當前error status
類。通過方法getStatus
我將確定是否有必要顯示消息。當然,我在app.module
中加入了providers
部分的必要字段。
在app.component.html
- 我的主要component
我已經加入
<error-handler></error-handler>
將顯示錯誤。
那麼主要問題如何以最好的方式實現我的error-handler component
?首先,我想到injecting
到構造函數我的errorHandlerService
,但後來我認識到status
永遠不會改變。所以請建議我或告訴如何正確地做。
現在我只注入到類我的服務:
@Component({
selector: 'error-handler',
templateUrl: './error-handler.component.html',
styleUrls: ['./error-handler.component.css']
})
export class ErrorHandlerComponent implements OnInit {
showErrorMessage = false;
constructor(private errorHandlerService: ErrorHandlerService) {}
ngOnInit() {}
}
.html
<h1 *ngIf="showErrorMessage ">Error appears!</h1>
什麼是你的組件與'<路由器出口>路由器出口>添加到''app.component.html'?並跟蹤在app.component.ts中是否存在服務錯誤'訂閱' –
我不理解你。請提供一些示例 – bielas