在Angular 8中,可以使用Reactive Forms和Angular Material来创建一个依赖下拉框的输入框。下面是一个代码示例:
首先,安装必要的依赖:
npm install @angular/material @angular/cdk @angular/forms
然后,导入相关的模块和组件:
app.module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
ReactiveFormsModule,
MatFormFieldModule,
MatInputModule,
MatSelectModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
app.component.ts:
import { Component } from '@angular/core';
import { FormControl } from '@angular/forms';
@Component({
selector: 'app-root',
template: `
Country
{{ country }}
City
{{ city }}
`
})
export class AppComponent {
countryControl = new FormControl();
cityControl = new FormControl();
countries = ['USA', 'Canada', 'Australia'];
cities = {
'USA': ['New York', 'Los Angeles', 'Chicago'],
'Canada': ['Toronto', 'Montreal', 'Vancouver'],
'Australia': ['Sydney', 'Melbourne', 'Brisbane']
};
filteredCities: string[];
constructor() {
this.countryControl.valueChanges.subscribe(country => {
this.filteredCities = this.cities[country];
});
}
}
在上面的示例中,我们使用了FormControl
来处理输入框的值。当选择一个国家时,相应的城市选项将被过滤并显示在自动完成的下拉框中。
希望这个示例能够帮助到你!