В моем app.component.ts
я делаю вызов API и извлекаю userDetails
. Я тогда испускаю это userDetails
. Я подписался на этот userDetails
в моем header
компоненте. Мой компонент заголовка использует компонент app-my-image-logo
. При обновлении страницы вызывается API и извлекаются userDetails. После этого генерируется событие и, следовательно, вызывается метод testnDisplay
. Но моя проблема каждые несколько секунд, я получаю следующий вывод на моей консоли.
img my-image-logo.component.ts:28
name my-image-logo.component.ts:28
img my-image-logo.component.ts:28
name my-image-logo.component.ts:28
img my-image-logo.component.ts:28
name my-image-logo.component.ts:28
img my-image-logo.component.ts:28
name my-image-logo.component.ts:28
Итак, этот метод вызывается несколько раз после частых интервалов, но его следовало вызывать только один раз.
header.component.html
<app-my-image-logo ></app-my-image-logo>
header.component.ts
ngOnInit() {
const self = this;
this.userDetails = this.dataService.getUserDetails();
this.dataService.userDetailsEvt.subscribe(
function(data){
self.userDetails = data;
}
);
}
Это app-my-logo
компонент.
приложение-logo.component.html
<img #imgDiv [hidden]="testnDisplay('img')" >
<div [hidden]="testnDisplay('name')"
></div>
приложение-logo.component.ts
testnDisplay(type){
console.log(type);
}
Это мой dataService
:
data.service.ts
setUserDetails(userDetails){
this.userDetails = userDetails;
this.userDetailsEvt.emit(this.userDetails);
}
getUserDetails(){
return this.userDetails;
}
app.component.ts
this.authService.httpPost("/auth/getUserDetails", payload).subscribe(
function (data: any) {
self.dataService.setUserDetails(data);
},
function(error){
}
);