在服务器目录中,我有一个 json 文件列表。我需要将每个 json filename 导入我的 angular 2 组件中的字符串数组或其他结构。
我尝试使用此服务向 Web 服务器创建一个 http.get。
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);
}
}
但是当我在我的组件中调用 anutenteservice.getFiles() 时,我得到了这个错误: JSON 中位置 0 的意外标记 <。 这是我的组件
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);
}
}
我不明白哪里错了。我该怎么办?
最佳答案
尝试做这个结构:
export class OrderslistComponent {
newsList;
errorMessage;
constructor(private anutenteservice: AnUtenteService) {
this.anutenteservice.getFiles.subscribe((data) => {
this.newsList = data;
}
);
}
ngOnInit() {
}
}
并将Http
添加到您的服务类。将此添加到您的服务类:
constructor(private http: Http) {
}
更新 1:
尝试改变类型,在这里:
private extractData(res: Response) {
let body = res.text();
return body.data || { };
}
如果您的响应类型不是 JSON
。
关于Angular 2 - 从 http.get 获取 json 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43658943/