Mapowanie na obiekt przy nieznanym modelu - TypeScript + Angular

0

Cześć,

Mam aplikacje w Angularze 5, mam serwis, który mi robi zapytania do fake API, mamy przykładowo endpoint /posts, który zwraca mi array obiektów. Problem jest taki, że docelowo nie będę znał struktry JSON'a, który będę pobierał z docelowego endpointu, czyli chciałbym zmapować na Array<any>.

Niestety nie mogę tak zrobić i mapuje mi na jeden pojedyńczy obiekt Subscription, który zawiera cały array. Może ktoś doradzić jak to sensownie zrobić, tak żebym później mógł na froncie iterować po tym arrayu?

Podkreślam, że dopiero zaczałem zabawę z tym frameworkiem i może mi umykać coś banalnego.

1

Hm, mógłbyś wrzucić kod (niekoniecznie działający - tylko ideę jak Ty to widzisz)?
Twój opis jest dosyć niejasny.

0
  getMessages(): Observable<Array<any>> {
    return this.http.get<Array<any>>(this.ROOT_URL);
  }

serwis wykonujący zapytania.

export class DismitOutputComponent implements OnInit {

  messages: Array<any>;

  constructor(private dismitService: DismitConsumerService) {
  }

  ngOnInit(): void {
    this.dismitService.getMessages().subscribe(data => {
      this.messages = data;
    });

ten url zwraca jakiś tam Array, i ja chce go zmapować na Array, a dostaje obiekt Subscription.

0

Po prostu mam liste JSONów o nieznanej stukturze i chciałbym je wyświetlać i dobierać pojedyńczo bez mapowania je na konkretny obiekt.

0

Co Ci zwróci console.log(data); przed this.messages = data;?

0
Patryk27 napisał(a):

Co Ci zwróci console.log(data); przed this.messages = data;?

obiekt Subscriber

0

a przepraszam, jak zrobie console.log w srodku ngOnInit to dostaje array 100 obiektów, które wlasnie oczekuje... wiec w czym jest blad? :/

0
  Property 'includes' is missing in type 'Subscription'. ```
0

Hm, hipotetycznie wygląda dobrze - możesz wrzucić więcej kodu?

0

error TS2322: Type 'Subscription' is not assignable to type 'any[]'. Property 'includes' is missing in type 'Subscription'. sorry za spamik

0

i fragment htmla, tutaj chce kazdy pojedynczy obiekt wsadzic w collapse

<div *ngFor="let message of messages; let i = index">
    <button data-toggle="collapse" data-target="#i">Collapsible</button>
  <div id="i" class="collapse">
    {{i}}
  </div>
 </div>
0

Wygląda jakby problem był z przypisaniem do Array<any> , zanim przypisze to widać, że wszystko jest ok, tzn mam array 100 obiektów

0

Wrzuć więcej kodu, który nie jest widokiem :-P

0

hmmm w trakcie kopiowania dostrzeglem błąd i dostałem jakieś przebłysku co do innych problemów i juz wszystko działa... ;d dzięki

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