Я пытаюсь использовать пользовательскую директиву , чтобы показать конкретное сообщение / ошибки сервера после http-запроса.
, например, в ответ или ошибка часть, я хотел бы нацелить пользовательскую директиву и выдать выделенное сообщение.Директива должна быть уже встроена в компонент , но не видна.Сначала, после передачи и отображения сообщения сервера, оно должно отображаться зеленым или красным цветом фона, в зависимости от успеха или неудачи.
server-error.directive :
import { Directive, ElementRef, OnInit, Renderer2, HostListener, HostBinding } from '@angular/core';
@Directive({
selector: '[appServerError]'
})
export class ServerErrorDirective implements OnInit {
constructor( private _elementRef: ElementRef, private _renderer: Renderer2 ) {}
ngOnInit() {}
@HostBinding( 'style.backgroundColor' ) backgroundColor: String = 'red';
}
delete-member.component.ts (это MatDialog):
removeUser() {
this._crudService.deleteUser( this.selectedUser ).subscribe(res => {
console.log( `res: ${JSON.stringify(res)}` );
}, err => {
console.log( `error: ${err.message}` );
}) ;
}
edit-member.component (вызывает и открываетMatDialog):
<mat-content>
....
<div appServerError>Success or Error message should be shown here</div>
....
</mat-content>
Я не хочу использовать #xxxx
и elementRef.nativeElement
для манипулирования DOM.Идея состоит в том, чтобы использовать пользовательскую директиву в качестве выделенной оболочки для всех ответов сервера или ошибок для различных запросов Http.
Есть ли возможность динамически достичь этого или я иду по неверному пути / концепции?
Искал, к сожалению не нашел ничего похожего.