我是编程新手。因此,我有一个API服务,该服务具有getJSON这样的发送数据的方法
{ "records" : [
{
"id" : "1",
"name" : "aa"
},
{
"id" : "2",
"name" : "bb"
},
...
]
}
我正在尝试使用角度CLI将数据获取到我的项目中。这是每个文件中的
//name.ts
export interface Name {
id: number;
name: string;
}
//name.service.ts
...
constructor(private _http: Http) { }
getName(): Observable<Name[]> {
return this._http.get(this._url).pipe(map((res: Response) => res.json()));
}
...
//app.component.ts
...
names: Name[];
constructor(private _nameService: nameService) { }
ngOnInit() {
this._nameService.getName().subscribe(data => this.names = data['records']);
}
这很好。但是,如果我使用的是HttpClient模块,请将getName()
内部的name.service.ts
函数更改为此:
//name.service.ts after getName() change
...
constructor(private _http: HttpClient) { }
getName(): Observable<Name[]> {
return this._http.get<Name[]>(this._url);
}
...
突然我得到了空名单。我做错了什么?我应该摆脱<Name[]>
从而变成return this._http.get(this._url);
吗?但是,这会引发错误并且无法编译。
答案 0 :(得分:-1)
尝试一下
服务
getName(): Observable<Name[]> {
return this._http.get(this._url).pipe(map((res: any) => res['records']));
}
组件
ngOnInit() {
this._nameService.getName().subscribe(data => this.names = data);
}