En un directorio del servidor tengo una lista de archivos json. Necesito importar cada nombre de archivo json en mi componente angular 2 en una matriz de cadenas u otra estructura.
Traté de hacer un http.get al servidor web usando este servicio.
export class AnUtenteService { getFiles() : Observable<string[]> { return this.http.get(directory) .map(this.extractData) .catch(this.handleError); } private extractData(res: Response) { let body = res.json(); return body.data || { }; } private handleError (error: any) { let errMsg = (error.message) ? error.message : error.status ? `${error.status} - ${error.statusText}` : 'Server error'; console.error(errMsg); // log to console instead return Observable.throw(errMsg); } }Pero cuando en mi componente llamo a anutenteservice.getFiles() me sale este error: Token inesperado < en JSON en la posición 0 . este es mi componente
export class OrderslistComponent{ newsList; errorMessage; constructor(private anutenteservice: AnUtenteService, private http: Http) {} ngOnInit() { this.anutenteservice.getFiles() .subscribe(data => this.newsList = data, error => this.errorMessage = <any>error); } }No entiendo donde esta el error. ¿Qué tengo que hacer?
Intenta hacer esta estructura:
export class OrderslistComponent { newsList; errorMessage; constructor(private anutenteservice: AnUtenteService) { this.anutenteservice.getFiles.subscribe((data) => { this.newsList = data; } ); } ngOnInit() { } } Y agregue Http a su clase de servicio. Agregue esto a su clase de servicio:
constructor(private http: Http) { }Actualización 1:
Intenta cambiar el tipo, aquí:
private extractData(res: Response) { let body = res.text(); return body.data || { }; } En caso de que su tipo de respuesta no sea un JSON .