• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[object, object] jak wyciągnąć dane?

Object Storage Arubacloud
0 głosów
306 wizyt
pytanie zadane 26 lipca 2018 w JavaScript przez SandraS Obywatel (1,400 p.)

Dostaje takie dane :
 

  public ngOnChanges() {
    console.log('dish view', this.dish);
  }


które sobie kosoluję i wiem, że zawierają:

I w pliku html próbuję wyświetlić dane:
{{dish}} 

i wyświetla mi: 
[object, object].

Jak się dostać do środka, skoro {{dish.selectedDish}} generuje również błąd?

komentarz 26 lipca 2018 przez niezalogowany
Czy to angular?
komentarz 26 lipca 2018 przez SandraS Obywatel (1,400 p.)
Tak!

1 odpowiedź

+1 głos
odpowiedź 26 lipca 2018 przez Tomek Sochacki Ekspert (227,510 p.)
wybrane 26 lipca 2018 przez ScriptyChris
 
Najlepsza

Rozumiem, że chodzi o widok Angular? Jeśli tak to:

{{dish.selectedDish}}
albo
{{dish?.selectedDish}}
albo
{{dish['selectedDish']}}

A jaki błąd generuje ci {{dish.selectedDish}}? Być może nie masz jeszcze dostępnego obiektu dish i jest on undefined, musiałbyś to dokładnie przebadać.

1
komentarz 26 lipca 2018 przez Tomek Sochacki Ekspert (227,510 p.)

ewentualnie możesz w ogóle np uzależnić stworzenie fragmentu html od istnienia obiektu, czy jego właściwości, np.:

<ng-container *ngIf="dish && dish.selectedDish">
  <!-- Twoje elementy, w których użyjesz np. {{dish.selectedDish}} -->
</ng-container>

Tylko w tym rozwiązaniu musisz uważać co jest w dish.selectedDish, bo jeśli to number i może być zerem to da false, więc musisz inny warunek, np. typeof dish.selectedDish === 'number'.

komentarz 26 lipca 2018 przez niezalogowany
Nie znam angulara, ale czy to nie jest tak, że on interpoluje tylko stringi?
komentarz 26 lipca 2018 przez SandraS Obywatel (1,400 p.)

{{dish}} generuje [object, object]

{{dish.selectedDish}} generuje:

{{dish?selectedDish}} generuje również [object, object]
{{dish['selectedDish']}} generuje to samo co {{dish.selectedDish}}

W ts. konsoluje sobie to co dostaje w this.dish, i to ma dane cały czas.

Kończą mi się pomysły :(

1
komentarz 26 lipca 2018 przez niezalogowany
Wygląda, jakby na starcie (czyli w momencie próby wyświetlenia) sam dish jeszcze nie istniał. Sugeruje to również mała ikonka "i" w konsoli.
komentarz 26 lipca 2018 przez Tomek Sochacki Ekspert (227,510 p.)

@argeento ,

Nie znam angulara, ale czy to nie jest tak, że on interpoluje tylko stringi?

Przewali to na stringa, stąd właśnie [object, object]  ale pytanie zasadnicze, gdzie jest "napełniany" danymi obiekt dish?

Stosujesz metodę ngOnChanges, która wywoła się jako pierwsza po kosntruktorze i co wazniejsze, nie odpali się przy mutowaniu obiektów. Nie jest czasem tak, że startowo ustawiasz dish np. jako pusty obiekt {}, a uzupełniasz go jakoś asynchronicznie w ngOnInit itp.?

komentarz 26 lipca 2018 przez SandraS Obywatel (1,400 p.)

Pykło!
 

<div *ngIf="dish && dish.selectedDish">
  Gdy jest dish {{dish.selectedDish.name}}
</div>

 

Myślałam, że błędnie wyciągam dane, a tu taki psikus.
Dziękuję!

Podobne pytania

0 głosów
1 odpowiedź 260 wizyt
pytanie zadane 25 czerwca 2019 w JavaScript przez sapero Gaduła (4,100 p.)
+1 głos
1 odpowiedź 67 wizyt
pytanie zadane 25 kwietnia 2023 w HTML i CSS przez TheDarkSide Użytkownik (930 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...