http error
が来たらいつでもカスタムポップアップを作成してカスタムメッセージを表示したいと思います。だから、これは現在のerror status
を保持するクラスですエラーがCustomErrorHandlerを経由したときにカスタムメッセージを表示しない
@Injectable()
export class ErrorHandlerService {
private status: any;
get getStatus(){
return this.status;
}
set setStatus(status : any){
this.status = status;
}
}
: - status
@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');
}
}
}
さらに、私は一つだけpropetyを持ってservice
を作成しました:これを行うには、私は次のようになりますカスタムevent handler
を作成しました。メソッドgetStatus
によって、メッセージを表示する必要があるかどうかを確認します。もちろん、私はapp.module
にproviders
セクションの必要フィールドを追加しました。 app.component.html
で
- 私はエラーが表示されます
<error-handler></error-handler>
を追加したcomponent
私のメイン。
したがって、最も良い方法で実装する方法の主な質問error-handler component
?まず、コンストラクタに対してinjecting
と考えましたが、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'で' subscribe'したサービスによるエラーがあれば追跡してください –
私はあなたを理解していません。いくつかの例を提供してください – bielas