select angular не показывает значение правильно - PullRequest
0 голосов
/ 19 июня 2020

У меня есть массив с массивами, которые имитируют книгу csv:

[
  [ 'PROBANDO', 'SUBIENDO DESDE CSV', '1', '900', '', '2', '1' ],
  [ 'PROBANDO', 'SUBIENDO DESDE CSV', '1', '900', '850', '3', '1' ],
  [ 'PROBANDO', 'SUBIENDO DESDE CSV', '1', '900', '850', '2', '1' ]
]

, и я хочу выбрать категорию (индекс 6) и изменить ее в массиве.

этот код полностью меняет категорию, но мне нужно выбрать второй раз, чтобы эта категория оставалась выбранной.

ts

  selectCat(event, idx: any) {
    let prod: any[] = this.productos[idx];

    prod.splice(6, 1, event.target.value); // 6 = posicion de la columna categoria

    this.productos.splice(idx, 1, prod);
  }

html

<tr *ngFor="let p of productos; index as idx">
    <td *ngFor="let i of p; index as ind">

        <p *ngIf="ind <= 4"> {{ i }} </p>

        <select *ngIf="ind == 6" name="cat" (change)="selectCat($event, idx)"
            class="form-control form-control-sm">
            <option *ngFor="let c of categorias" [value]="c.id"> {{ c.categoria }}
            </option>
        </select>

    </td>
</tr>

массив категорий:

[
  {id: 2, categoria: "Cat22"},
  {id: 3, categoria: "cat3"},
  {id: 1, categoria: "Ropa"}
]

-------------------- ---------------------------------------

Ставлю значение, выбранное над выбором для проверки, является правильным I put the value selected above the select to verify is correct

что я делаю не так?

1 Ответ

1 голос
/ 19 июня 2020

Не могли бы вы попробовать использовать [(ngModel)]="p[ind]" вместо (change)="selectCat($event, idx)". Я думаю, что данные неправильно привязаны к выбранному вводу. Если я правильно понимаю, в раскрывающемся списке при начальной загрузке также должно отображаться «Ropa».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...