Проблема получения событий из Eventbrite API - PullRequest
0 голосов
/ 15 марта 2019

Я строю школьный проект, используя angular js и node js в качестве бэкэнда, я пытаюсь отобразить событие в моем интерфейсе, используя Angular JS из EventBrite. Потратив несколько часов на проверку другого учебника, я написал этокод

Узел JS код:

router.get('/', (req, res)=>{

  axios.get(`${EventsBriteAPI}`).then(result=>{
    let relevantData = result.data.data.events
    res.status(200).json(relevantData);
    console.log(results );
  })

  .catch(error => {
    res.status(500).send(error);
  })
});

Мой сервисный код:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';


@Injectable({
  providedIn: 'root'
})


export class EventsService {

  uri = 'http://localhost:4600/events';

  constructor(private httpClient: HttpClient) {}


  getAllEvents(){
    return this.httpClient.get(this.uri);
  }

}

Код моего компонента

import { Component } from '@angular/core';
import { EventsService } from './events.service';
import { Observable } from 'rxjs/internal/Observable';

@Component({
   selector: 'events',
   templateUrl: 'events.Component.html'
})
export class EventsComponent {
  title = "List of events";
  eventObservable : Observable<any[]> ;
  
  constructor(service: EventsService){


    this.eventObservable = service.getAllEvents();


    console.log(this.eventObservable);


  }


}

Когда я запускаю свой код, я получаю эту ошибку src / app / component / events / events.component.ts (21,5): ошибка TS2322:Тип «Наблюдаемый» нельзя назначить типу «Наблюдаемый».Тип «Объект» назначается очень немногим другим типам.Вы хотели использовать вместо этого любой тип?Тип «Объект» отсутствует следующие свойства из типа «любой []»: длина, поп, толчок, конкат и еще 26.и он ничего не отображает в моем интерфейсе

Не могли бы вы помочь мне с этим.

1 Ответ

0 голосов
/ 15 марта 2019

нам не нужно использовать переменную типа Observable, если вы не используете трубу async или для каких-либо особых требований.

Вы можете сделать что-то подобное ниже,

EventsComponent.ts

 eventObservable: any = [];

 constructor(private service: EventsService) {
    this.service.getAllEvents().subscribe((response: any) =>{
        this.eventObservable = response;
        console.log(this.eventObservable);
    });
 }

weобычно используют ngOnInit() для вызова данных API, не входящих в constructor().

...