Angular 2D Array не обновляет строки и столбцы таблицы соответственно - PullRequest
0 голосов
/ 25 сентября 2019

У меня были некоторые проблемы при попытке инициализировать двумерный массив на основе различных условий в Angular Typescript.Вот мой TypeScript:

selectSvcNoTable: any[][] = [];

const numofOrder = Number(value); // value here update according to input number
if (this.selectedSvcTy === this.SVC_TYP_IPHONENET) {
      this.selectSvcNoTable = [[new Array(numofOrder)], [new Array(3)]];
} else {
      this.selectSvcNoTable = [[new Array(numofOrder)], [new Array(1)]];
}

В моем HTML:

<tr *ngFor="let row of selectSvcNoTable; let rowIdx = index;">
    <td *ngFor="let col of row; let colIdx = index;">         
    </td>

Однако в таблице показаны только две строки независимо от значения, которое я установил в 'numofOrder».Есть идеи?Заранее спасибо!

1 Ответ

1 голос
/ 25 сентября 2019
[[new Array(numofOrder)], [new Array(3)]]

Этот синтаксис приводит к:

[
  [
    [0, 1, 2]
  ], [
    [0, 1, 2]
  ]
]

У вас нет 2D-массива, но есть 3D-массив.

Попробуйте вместо этого:

selectSvcNoTable: any[][] = [];

const numofOrder = Number(value); // value here update according to input number
if (this.selectedSvcTy === this.SVC_TYP_IPHONENET) {
      this.selectSvcNoTable = [new Array(numofOrder), new Array(3)];
} else {
      this.selectSvcNoTable = [new Array(numofOrder), new Array(1)];
}
...