Warunkowe wyświetlanie komponentów

Warunkowe wyświetlanie komponentów
I1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

Cześć,

Jestem początkujący z angulara i nie rozumiem jednej rzeczy.

Mam np. taką listę: lista = ["Adam", "Zosia", "Piotr", "Stefan"]
I chcę w component.html przeiterować po niej i wyświetlić tylko Piotra.
Poniższy kod nie działa. Dlaczego ?

Kopiuj
<ng-container *ngFor="let elementListy of lista">
  <li *ngIf="elementListy=='Piotr'">
    {{elementListy}}
  </li>
</ng-container>

W pierwszej linii iteruje po elementach listy.
W drugiej sprawdzam czy kolejny element to 'Piotr'
Jeśli tak to wyświetlam, jeśli nie to nie wyświetlam.
Co robię źle?

Dodam jeszcze, że w przypadku gdy działam na liscie obiektow to da się tak zrobić. Ze zwykłą lista elementów nie bardzo.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
2

Co to znaczy nie działa? (wyświetlają się wszystkie elementy, nie wyświetla się żaden, komputer staje w płomieniach itd.)

SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 216
0

U mnie działa :) (serio, skopiowałem twój kod)
ogólnie zamiast == powinieneś robić ===
Poczytaj o JavaScript/TypeScript i naucz się go zanim zaczniesz się bawić frameworkami.

LukeJL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8487
0

U mnie też działa. Więc pewnie masz problem gdzieś indziej. Jak podajesz te dane do komponentu? Czy jak usuniesz *ngIf to dalej "nie działa"?

I1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
1

Dobra, nie było tematu...
Zrobiłem po prostu głupią rzecz, aż wstyd trochę :-)
Zadeklarowałem listę tak że miała jeden element, więc warunek nie był spełniony:

Kopiuj
lista = ["Piotr, Adam, Zenon, Krzysiek,Zosia"];

Uczę się dopiero i skupiłem się na sprawdzaniu czemu kod w pliku html nie dziala i zupełnie nie pomyślałem, że przy tworzeniu listy mogłem się walnąć.
Działa już, dziękuję :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.