html - Kako zadano označiti određene potvrdne okvire na temelju nekih vrijednosti u Angularu 7


Imam checkboxove i selectbox čije vrijednosti dolaze iz petlje, ali ovdje trebam da neki checkboxovi budu označeni po defaultu na temelju niza objekata. Vrijednosti checkboxa i selectboxa dolaze iz varijabli usersg i usersr. Ali označeno i odabrano po defaultu treba biti iz varijabli usersg_checked i usersr_selected unutar ngOnInit(). Evo koda ispod

home.component.html

<p *ngFor="let group of usersg"><input type="checkbox" checked="checked.id" value="{{group.id}}" />{{group.name}}</p>

<p><select><option *ngFor="let role of usersr" value="{{role.id}}">{{role.name}}</option></select></p>

home.component.html

import { Component, OnInit } from '@angular/core';
import { CommonserviceService } from './../utilities/services/commonservice.service';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {

    submitted = false;
    usersg_checked:any;
    usersr_selected:any;

 constructor(private formBuilder: FormBuilder) {


     }
public usersg = [{"id":1,"name":"test1"},{"id":2,"name":"test2"},{"id":3,"name":"test3"},{"id":4,"name":"test4"}];

public usersr = [{"id":1,"name":"test1"},{"id":2,"name":"test2"}];


  ngOnInit() {
this.usersg_checked = [{"id":1,"name":"test1"},{"id":2,"name":"test2"}];

this.usersr_selected = [{"id":1,"name":"test1"}];


  }


}

Odgovor #1

Dodajte metodu isChecked() u komponentu kako biste provjerili treba li okvir za potvrdu biti odabran.

Komponenta:

isChecked(id) {
  return this.usersg_checked.some(item => item.id === id);
}

Predložak:

<p *ngFor="let group of usersg">
  <input type="checkbox" [checked]="isChecked(group.id)" value="{{group.id}}" />{{group.name}}
</p>

Za <select> elemente bolje je koristiti [(ngModel)].

Predložak:

<p><select [(ngModel)]="usersr_selected.id">
   <option *ngFor="let role of usersr" value="{{role.id}}">{{role.name}}</option> 
</select></p>

Komponenta:

I promijenite usersr_selected u objekt.

ngOnInit() {
  this.usersr_selected = {"id":1,"name":"test1"};
}  

Ako je usersr_selected niz, upotrijebite prvi element niza kao NgModel.

ngOnInit() {
  this.usersr_selected = this.usersr_selected[0];
}