Angular 2 Как динамически привязать флажок и вернуть идентификаторы отмеченных флажков при нажатии кнопки «Отправить»

Существует альтернатива петле, ее названная рекурсия и рекурсия хвостовая рекурсия - самое приятное разнообразие, поскольку вы теоретически можете сделать это до конца времени - точно так же, как цикл: D

ps, хвостовая рекурсия часто является синтаксическим сахаром для цикла - однако в случае процедурных языков (C ++) компилятор обычно теряется, поэтому хвост -recursion не оптимизирован, и у вас может закончиться нехватка памяти (но если вы написали рекурсию, которая исчерпала память, чем у вас большие проблемы): D

больше downvotes, пожалуйста !!

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

0
задан Chandan Y S 18 January 2019 в 13:18
поделиться

1 ответ

Я думаю, вам нужно иметь столько же флажков, сколько длина массива.

Вы можете перебрать список с помощью ngFor и сохранить состояние выбранных элементов в отдельном массиве.

  checked = [];

  data = [  
         {  
            "id":1,
            "applicationId":1,
            "permissions":"Edit"
         },
         {  
            "id":2,
            "applicationId":1,
            "permissions":"View"
         }
  ];

  checkItem(item) {
    const idx = this.checked.indexOf(item);
    idx >= 0 ? this.checked.splice(idx, 1) : this.checked.push(item);
  }

  submitData() {
    const applicationIds = this.checked.map(it => it.applicationId);
    console.log(applicationIds);
  }

и шаблон будет что-то вроде

<ul>
  <li *ngFor="let item of data">
    {{item.permissions}} <input type="checkbox" (change)="checkItem(item)">
  </li>
</ul>

<button type="button" (click)="submitData()">Submit</button>
0
ответ дан profanis 18 January 2019 в 13:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: