我如何在循环中执行 ngModel?

How can I do a ngModel in a loop?

我的 angular 应用程序有问题我想更改 ngModel 的值,如果该项目在许可证中但我在我的 .ts 文件中循环我认为 ngModel 采取测试的最后一个值,但有些项目不在许可证中我想将 ngModel 的值设置为 false。

.html 文件:

<div *ngFor="let elt of element">

    <input type="checkbox" #checkbox class="input_checkbox" [ngModel]="test" name="itemBoolean_{{elt.item.id}}" id="custom_item_{{elt.item.id}}" >

</div>

.ts 文件:

 element : item[];

 itemInLicense : ItemLicense[];

 test : boolean = false ;


ngOnInit() {

    this.itemInLicense.forEach((elt)=>{

        if(document.getElementById("custom_item_"+elt.itemId))

            this.test = true ;

        else

            this.test = false ;

     })

}

如果您绑定的变量也是 Array,您可以在迭代中使用 index 数字:

则需要将属性test改成如下:

 test : boolean[] = [] ;

 ngOnInit() {

   this.itemInLicense.forEach((elt, index)=>{
     if(document.getElementById("custom_item_"+elt.itemId)){
       this.test[index] = true ;
    } else {
      this.test[index] = false ;
    });
 }

并调整 HTML 如下:

<div *ngFor="let elt of element; i=index">
  <input type="checkbox" 
         #checkbox 
         class="input_checkbox"
         [ngModel]="test[i]"
         name="itemBoolean_{{elt.item.id}}"
         id="custom_item_{{elt.item.id}}" >

</div>