angular - Angular 7 ERROR TypeError:无法读取未定义的属性“管道”
问题描述
嗨,我对 Angular 非常陌生,正在尝试使用 customfilters 实现自动完成,但遇到了与管道相关的错误,无法从过去 3 天找到解决方案。有人可以帮我解决这个问题吗
<mat-form-field class="col-12 col-sm-6">
<mat-label class="padding">Units</mat-label>
<mat-select formControlName="unit" [(value)]="selected" required style="padding-left: 10px;">
<mat-option *ngFor="let list of unitsList | async" [value]="list.codename">{{list.codevalue}}</mat-option>
</mat-select>
<mat-error *ngIf="getvalue1.unit.errors">{{getunitErrorMessage()}}</mat-error>
</mat-form-field>
我的 ts 文件:
ngOnInit() {
//
this.projectservice.getInventoryProjectsList().subscribe(
data => {
this.projectsList2 = data;
}
);
// for inventory dropdown
this.inventory.getInvDropdown().subscribe(
data => {
this.unitsList = data['units'];
console.log(this.unitsList);
// tslint:disable-next-line:no-string-literal
}
);
this.formBuilderOnDemand();
this.filter();
}
// // for filter
filter() {
this.filteredOptions = this.addInventoryForm.value.itemName.valueChanges
.pipe( // Error line
startWith(''),
map(value => this._filter(value))
);
}
// for search in item name
private _filter(value: any): any[] {
const filterValue = value.toLowerCase();
return this.materialList.filter(list => list.toLowerCase().includes(filterValue));
}
解决方案
您在unitsList | async
HTML 上使用,但unitsList
已经是一个数组,async
管道旨在用于异步类型(即Observable
或Promise
)
不确定这是否会使您的代码完全正常工作,但我认为这将解决您现在遇到的错误
编辑
从您的编辑中,您尝试订阅(我认为是) a 的值FormControl
,您需要订阅 FormControl 的值更改。
this.myForm.get('myFormControl').valueChanges.subscribe(val => {
//Do something when "myFormControl" value changes
});
推荐阅读
- c# - 将 ActionResult 文件保存到服务器
- blockchain - 使用 web3 将超过 2 个参数传递给 Solidity Contract 构造函数
- docker - Docker Compose 和本地缓存的图像
- c++ - 使用opencv在受控环境中进行视频跟踪的跟踪标记和跟踪算法选择
- vba - Win 10 Excel 2016 无法解释的 PixelsToPoints 系数来定位 UserForm
- html - 包含行中的列
- hive - Hive - 查找用户完成的更新
- matrix - 如何使用 Fortran 77 计算矩阵的对数?
- android - Android Retrofit如何加载数据和加载图像独立于回收站视图
- javascript - 如何为从 html 调用的函数编写测试用例