Angular *ngIf

0

Witam, mam problem z Angularem, otóż:

Mam taką funkcję (zwykła prosta):

Uprawnienia(obiekt_id){
  if (this.user[0] == obiekt_id)
    return true
  else 
    return false
}

I chciałem sobie w widoku użyć takie kodu:

*ngIf="authService.Uprawnienia(2)"

Tak abym mógł w łatwy sposób zarządzać uprawnieniami użytkowników, ale Angular jeżeli chodzi o widok to chyba cały czas go "odświeża" bo zapętla mi się ta funkcja.
Moje pytanie czy da się to jakoś obejść jeśli tak to jak lub czy jest jakieś inne rozwiązanie które pomoże mi to uzyskać. Z góry Dziękuje

0

no i jest to normalne bardzo dobre zachowanie angulara. bo co jakbyś w tej metodzie miał więcej zmiennych gdzieś pochodzących z innych miejsc wewnątrz kontrolera? zmieniła by ci się wartość a na froncie nic by się nie zmieniło. Jeśli nie chcesz tej metody wywoływać co chwila to wystawiaj tylko zmienną a metodę wywołaj raz np w kontruktorze

0

rozumiem tylko ze teraz jak bym chciał ukrywać jakieś elementy a mam ich dużo na stronie to musiał bym robić mnóstwo zmiennych? Czy to jest dobra praktyka? jeżeli chodzi o programowanie

1

nie widze twojego kodu, zamysłu itp ale jeśli mam być szczery i dać ci rade jako osoba która w angularze robi od 3 lat - nie przejmuj sie, że angular mieli tą funkcje co chwila, w moich apkach mieli co chwila dużo bardziej złożone funkcje i nikt jeszcze mi nie narzekał na wydajność ;)

1

Jeśli bardzo nie chcesz wywoływać tej metody przy każdym event'cie, możesz użyć pure pipe:

https://angular.io/guide/pipes#pure-and-impure-pipes

0

Ok Dziękuje za wszystkie wskazówki bardzo mi pomogły.

1 użytkowników online, w tym zalogowanych: 0, gości: 1