如何从TypeScript中的嵌套JSON获取数据?

时间:2018-10-09 08:54:30

标签: javascript json angular typescript

我有后续问题:

enter image description here

当我束缚获取附加组件时,我只获得[],但Web控制台向我显示我具有附加组件。

我的json结构:

enter image description here

我只是想这样做:

console.log(vehicle.montage_card.addons);,但我得到以下结果:[]

我在做什么错了?

编辑

我有PrimeNg表,这只是该表的一小部分:

      <ng-template let-col let-vehicle="rowData" let-index="rowIndex" pTemplate="editor">
        <p-multiSelect *ngIf="!viewMode && (continuationContract == 0)" name="client_vehicles{{index}}" [showToggleAll]="false" [style]="{'width':'100%'}"
          [options]="clientVehiclesOptions" defaultLabel="Open list" [ngModel]="vehicle.assignedContractsID" (ngModelChange)="onSelectedClientVehiclesChange($event, vehicle)"
          maxSelectedLabels=0 selectedItemsLabel="Wybrano: {0}." (onChange)="checkSelectedClientVehiclesQuantity(vehicle)"
          [disabled]="viewMode">
        </p-multiSelect>
      </ng-template>

这是我控制台登录车辆时的功能:

onSelectedClientVehiclesChange(event: any, vehicle: Vehicle) {

let temp: any[] = [];
let numberExists: boolean = false;
console.log("vehicle");
console.log(vehicle);
console.log(vehicle.montage_card.addons);

event.forEach(element => {
  temp.push(this.clientVehicles.client_vehicles.find(clientVehicle => clientVehicle.id == element));
});
}

2 个答案:

答案 0 :(得分:2)

输出数据时,没有填充插件,但是有一个填充数据的位置晚于输出或及时使用数据。 例如,使用ajax从服务器填充数据。

由于您打印的数据是对象,这表示对内存空间的引用,因此在控制台中填充数据后打开该内存空间时,您会看到插件。

这就是为什么它说没有扩展,但是在扩展时有扩展。

要使用数据,请确保在数据填充之后使用它。 注意异步操作。

答案 1 :(得分:-1)

尝试使用以下格式:

console.log(vehicle['montage_card']['addons']);