• 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?

VPS Starter Arubacloud
0 głosów
353 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,490 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,490 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,490 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ź 281 wizyt
pytanie zadane 25 czerwca 2019 w JavaScript przez sapero Gaduła (4,100 p.)
+1 głos
1 odpowiedź 82 wizyt
pytanie zadane 25 kwietnia 2023 w HTML i CSS przez TheDarkSide Użytkownik (930 p.)

93,006 zapytań

141,972 odpowiedzi

321,254 komentarzy

62,345 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...