Как я могу использовать ngFor и ngModel на карте в Angular

У меня есть карта app_access; который представляет собой список приложений и логические значения доступа к этим приложениям. Я хочу использовать ngFor и ngModel для управления логическими значениями на карте.

Я хочу сделать что-то вроде:

<div *ngFor="let app of app_access">
    <input type="checkbox" [(ngModel)]="app.value" />
<div/>

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


person truve    schedule 08.08.2019    source источник
comment
используйте трубу keyvalue. <div *ngFor="let app of app_access | keyvalue">   -  person DetectivePikachu    schedule 08.08.2019
comment
Сформулируйте ответ, ведь это на самом деле один :)   -  person sagat    schedule 08.08.2019
comment
Спасибо за совет. К сожалению, я использую angular 5 (глупо, но я не могу использовать новейшую версию по причинам) и не имею доступа к каналу keyvalue. Вы знаете другую работу?   -  person truve    schedule 09.08.2019


Ответы (1)


Да, ты можешь. Сначала вам нужно исправить опечатку с помощью закрывающего тега вашего div.

Демонстрация Stackblitz

.ts

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  app_access = [{
    value: true,
    name: 'Cx1'
  }];
}

.html

<div *ngFor="let app of app_access">
    {{app.name}} <input type="checkbox" [(ngModel)]="app.value" />
</div>

{{ app_access[0].value}}
person Nidhin Joseph    schedule 08.08.2019