我如何在循环中执行 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>
我的 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>