Witam, posiadam komponent, do którego przekazuję trzy inputy i robię na nich set/get aby wykrywać zmiany:
@Input() set id(id: number) {
if (id) {
this._id= id;
zmienParametry();
}
}
get id() { return this._id; }
@Input() set status(status: IdOpis) {
if (status) {
this._status = status;
zmienParametry();
}
}
get statusy() { return this._status; }
@Input() set data(data: string) {
if (data) {
this._data = data;
zmienParametry();
}
}
get data() { return this._data; }
każda zmiana wywołuje funkcję zmienParametry(), która jest odpowiedzialna za sprawdzenie czy dane 3 inputy istnieją, a jeśli tak, wysyła requesta do backendu wraz z parametrami.
Problem polega na tym, że czasami zdarza się, że dwa sety są zmieniane jednocześnie, a efekt tego taki, że wysyła niepotrzebnie dwa requesty.
Jak wykrywać zmiany na trzech inputach za jednym zamachem? Próbowałem hook'a NgChanges i zrobić coś a'la
ngOnChanges(changes: SimpleChanges) {
if (changes.data || changes.status || changes.id ) {
console.log('changed');
}
}
Ale to też nie działa tak, jak chcę