【发布时间】:2018-04-09 12:08:55
【问题描述】:
我是 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);
只是将 objects[] 分配给 rowData 但似乎没有任何效果。问题似乎出在我的表情上;
this.vehicles.result.objects;
过去车辆 Angular 所说的一切都是未定义的。奇怪的是,如果我在模板中使用字符串插值,我可以使用 *ngFor 创建一个列表 if vehicleIds 使用相同的表达式,尽管控制台仍然抱怨未定义的属性;
<ul>
<li *ngFor="let vehicle of vehicles.result.objects">
{{ vehicle.vehicleId }}
</li>
显然,我在这里缺少一些基本的东西。任何建议将不胜感激。
【问题讨论】:
-
你可以试试
console.log(this.vehicles.result.object)吗? -
那是我的第一个调试策略。这是控制台错误:ERROR TypeError: Cannot read property 'object' of undefined at SafeSubscriber.eval [as _complete] (my-grid-application.component.ts:69)
-
this.vehicles.result.object 应该是 this.vehicles.result.objects;
-
抱歉,这是我帖子中的错字。我在我的代码中做对了。已在帖子中修复
-
请分享console.log(this.vehicles)的结果
标签: javascript angular typescript ag-grid