我是Angular和JS的新手,所以请保持温柔。我有一个Angular 5服务,它提取JSON结构如下:
result: {
objects: [
{object1},
{object2}.....
然后将JSON存储在grid-component.ts中的变量中作为对象:
getVehicles() {
this._vehicleService.getVehicles().subscribe(
data => { this.vehicles = data },
err => console.error(err),
() => console.log('done loading vehicles')
);
我正在尝试将结果的数组部分 objects [] 放入rowData而没有任何运气。我尝试了几种方法;迭代对象并推送到rowData。
for (let vehicle of this.vehicles.result.objects) {
this.gridOptions.rowData.push(vehicle);
只需将 对象[] 分配给rowData,但似乎没有任何效果。问题似乎与我的表达有关;
this.vehicles.result.objects;
过去的车辆Angular所说的一切都未定义。奇怪的是,如果我在模板中使用字符串插值,我可以使用* ngFor创建一个列表,如果vehicleIds使用相同的表达式,虽然控制台仍然抱怨未定义的属性;
<ul>
<li *ngFor="let vehicle of vehicles.result.objects">
{{ vehicle.vehicleId }}
</li>
显然,我在这里缺少一些基本的东西。任何建议将不胜感激。
答案 0 :(得分:0)
问题在于您的vehicles
对象,最初在组件呈现时未定义。添加?
以克服此问题。
<ul>
<li *ngFor="let vehicle of vehicles?.result.objects">
{{ vehicle.vehicleId }}
</li>
使用async
管道解决此问题的其他可能方法。您可以找到与async
pipe here