Wpis z mikrobloga

Od rana testuję angulara2. Mam w nim jsona, którego przesyłam do widoku jako zmienną "site". Po stronie widoku mogę wyprintować tego jsona za pomocą {{site | json}} (chociaż w głowę zachodzę, dlaczego w angularze nie działa console.log i o co tutaj może chodzić, więc jeśli ktoś wie to będę wdzięczny). No i teraz chciałbym wydobyć z niego dane, np. site.title, ale {{ site.title }} wywala błąd. W jaki sposób mogę w tych nawiasach wyciągnąć site.title z tego jsona?

#angular #programowanie #javascript
  • 28
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wizzle: jaki błąd?

{{ site.title }} powinno działać normalnie, tak jak w jedynce

no i gdzie Ci ten console.log nie działa? to też jest dziwne
  • Odpowiedz
@epi: Właściwie wszędzie nie działa mi ten console.log, chociaż przydałoby się, żeby chociaż działał w konstruktorze serwisu lub komponentu. Też tego nie rozumiem, nawet console.log('test') nie działa, podczas kiedy alert działa poprawnie ;/ Ciężko tak debugować, jest na to jakaś rada?
  • Odpowiedz
@wizzle: najlepiej jak zrobisz sobie serwis, tam metode np return this.http.get(this.artistUrl)
.toPromise().then(response => response.json()).catch(this.handleError); -> wtedy w komponencie masz obiekt i przypisujesz sobie this.
service.getArtist(this.id).then((res) => {
this.artist = res;
});
  • Odpowiedz
@wizzle: zasysasz dane ajaxem, więc w momencie, w którym widok ich potrzebuje, jeszcze ich nie masz ;)

żeby bezpiecznie sobie coś wypisać użyj {{ site?.title }}

  • Odpowiedz
@wizzle: W angularze 1.x było coś takiego jak $log, które wstrzykiwało się do kontrolera i z tego można było logować. Nie chce mi się szukać, czy w 2 to dalej tak działa, zresztą - też nigdy nie miałem problemów z console.log...
  • Odpowiedz