在Angular 6中过滤FormArray元素的方法如下:
import { Component } from '@angular/core';
import { FormArray, FormControl } from '@angular/forms';
@Component({
selector: 'app-example',
template: `
<form [formGroup]="myForm">
<div formArrayName="myArray">
<div *ngFor="let control of myForm.get('myArray').controls; let i = index">
<input type="text" [formControlName]="i">
</div>
</div>
</form>
`,
})
export class ExampleComponent {
myForm: FormGroup;
constructor() {
this.myForm = new FormGroup({
myArray: new FormArray([])
});
}
}
import { Component } from '@angular/core';
import { FormArray, FormControl } from '@angular/forms';
@Component({
selector: 'app-example',
template: `
<form [formGroup]="myForm">
<div formArrayName="myArray">
<div *ngFor="let control of filteredArray.controls; let i = index">
<input type="text" [formControlName]="i">
</div>
</div>
</form>
`,
})
export class ExampleComponent {
myForm: FormGroup;
constructor() {
this.myForm = new FormGroup({
myArray: new FormArray([
new FormControl('apple'),
new FormControl('banana'),
new FormControl('cherry')
])
});
}
get filteredArray(): FormArray {
const filterValue = 'a'; // 过滤条件,这里假设为字母'a'
const array = this.myForm.get('myArray') as FormArray;
const filteredControls = array.controls.filter(control =>
control.value.includes(filterValue)
);
return new FormArray(filteredControls);
}
}
在上述示例中,我们创建了一个FormArray对象,并将其初始化为包含三个FormControl的数组。然后,我们创建了一个名为filteredArray
的getter方法,该方法使用filter
函数过滤出符合条件的元素,并返回一个新的FormArray对象。在模板中,我们使用filteredArray
来循环显示过滤后的元素。
这是一个简单的示例,你可以根据实际需求来修改过滤条件和FormArray的初始值。同时,你也可以根据需要添加其他表单控件和验证规则。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求和项目要求进行评估。
一些重要的 demo
dropList
领取专属 10元无门槛券
手把手带您无忧上云