要使用Angular Material 和 MaterializeCSS 来创建一个包含FormArray的选择器,可以按照以下步骤进行操作:
npm install @angular/material
npm install materialize-css
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
BrowserAnimationsModule,
MatFormFieldModule,
MatInputModule,
MatSelectModule,
MatIconModule,
MatButtonModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormArray, FormControl } from '@angular/forms';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
form: FormGroup;
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.form = this.fb.group({
options: this.fb.array([])
});
// 添加两个初始选项
this.addOption();
this.addOption();
}
get options() {
return this.form.get('options') as FormArray;
}
addOption() {
this.options.push(this.fb.control(''));
}
removeOption(index: number) {
this.options.removeAt(index);
}
onSubmit() {
console.log(this.form.value);
}
}
这样就可以创建一个包含FormArray的选择器,用户可以添加或删除选项,并在提交表单时获取选项的值。