angular - Angular Material 自动完成共享模块
问题描述
我在多个组件中使用角度材料自动完成输入,它看起来总是一样的:
form.component.html
<mat-form-field>
<mat-label>Name</mat-label>
<input matInput aria-label="Name" [matAutocomplete]="auto" [formControl]="nameCtrl" type="text">
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let name of filteredNames | async" [value]="name.adlogin">
<span>{{ name.displayname }}</span>
</mat-option>
</mat-autocomplete>
</mat-form-field>
form.component.ts
export class FormComponent {
nameCtrl: new FormControl();
filteredNames: Observable<any[]>;
nameList: any = [];
constructor() {
this.filteredNames = this.nameCtrl.valueChanges
.pipe(
startWith(''),
map(name => name ? this.filterStates(name) : this.nameList.slice())
);
}
filterStates(name: string) {
return this.nameList.filter(name => {
const searchStr = name.displayname.toLowerCase();
return searchStr.indexOf(name.toLowerCase()) !== -1;
});
}
}
如果组件中需要它,我应该怎么做才能创建可以导入的共享模块?
解决方案
您需要从这个名为“Autocomplete.component.html”的组件以及 ts.xml 中创建一个组件。您还应该拥有带有选择器的元数据。
然后创建一个 SharedModule 并在 export 下的声明中导入组件。
现在,您应该能够通过在导入下导入 SharedModule 来在其他模块中的任何位置使用该组件。
推荐阅读
- python - dill.dump_session 在 jupyter 实验室中不起作用
- ffmpeg - What are the licence free codecs for FFMPEG?
- kubernetes - 什么是使用 kubectl 的简单构建和部署过程?
- amazon-web-services - 在 SQS lambda 环境中扇出的推荐方法是什么?
- pari - 从 pari/gp 调用外部函数
- java - 从 arrayList 检查 int 值
- recaptcha - 为桌面应用程序(机器人)重用站点 recaptcha 密钥(绕过它)
- c++ - 模板和通用参考
- python-3.x - 如何在 ipywidget out 小部件中显示 matplotlib 饼图?我正在使用 Jupyter Notebook,目前没有显示任何内容
- r - 比较两列的条件