angular - Angular - 将 API 响应对象映射到键值对
问题描述
我正在尝试使用 Angular 从 Laravel API 中读取数据,但无法从中获取逐项列出的键值对。
app.component.ts :
import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
products = [];
constructor (private dataService: DataService ) {}
ngOnInit() {
this.dataService.sendGetRequest().subscribe((data: any = [])=>{
console.log(data);
this.products = data;
});
}
}
我从 API 读取的 DataService 类: data.service.ts :
import { Injectable } from '@angular/core';
import { HttpClient, JsonpInterceptor } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class DataService {
private REST_API_SERVER = "http://127.0.0.1:8000/api/assets";
constructor(private httpClient: HttpClient) { }
public sendGetRequest(){
return this.httpClient.get(this.REST_API_SERVER);
}
}
我得到的只是一个对象列表:
我尝试了 Angular 的“地图”运算符,但仍然得到相同的对象列表。有任何想法吗 ?读取这些对象内的实际数据的最佳方法是什么?
谢谢
解决方案
事实证明我没有在 API 端发送正确的 JSON 对象。下面已经解决了这个问题。值不再作为“对象”出现,而是正确的 JSON 集。
返回响应()->json($resp);
我希望这对将来的人有所帮助。