如果复选框被选中,则选中ngOnInit



亲爱的我有以下场景。我在一个屏幕上有一些检查,当我选择一些时,它们会转到另一个屏幕,只有我为另一个屏幕选择的那些。它停留在另一个屏幕的右边。问题是,当使用这个屏幕上的按钮时,好像它没有被选中。只有我再次点击它们,它们才会起作用。有人知道我是如何捕获它们被选中的信息以便我可以不放方法吗?还是……它完成了ngFor没有Id,因为我没有标记它们,所以用户必须标记它,方法将被调用

component.html

<form [formGroup]="form" >
<p><b>Reactive Checkbox</b></p>
<ul formArrayName="fruits">
<li [formGroupName]="i" *ngFor="let item of form.controls?.fruits?.controls; let i = index">
<input type="checkbox" formControlName="checked" />  {{fruits[i].name}}
</li>
</ul>
</form>

component.ts

fruits:Array<any> = [
{ name: '🍓', checked: true },
{ name: '🍌', checked: false }
]
ngOnInit(): void {
// build reactive form skeleton
this.form = new FormGroup({
// control for Checkbox exemple
fruits: new FormArray([]),
});
// bind existing value to form control
this._patchValues();
}
private _patchValues(): void {
// get array control
const formArray = this.form.get('fruits') as FormArray;
// loop for each existing value
this.fruits.forEach((fruit) => {
// add new control to FormArray
formArray.push(
// here the new FormControl with item value from fruits
new FormGroup({
name: new FormControl(fruit.name),
checked: new FormControl(fruit.checked),
})
);
});
}

我从Angular开始。但是我用@Output和EventEmitter解决了我的问题。对不起,我没有说清楚。

最新更新