【发布时间】:2018-11-30 09:23:53
【问题描述】:
我的 chrome 控制台出现此错误:
错误类型错误:无法读取属性 'toLowerCase' 未定义
在 DashboardComponent.html:5 上:
<div class="mdl-grid center-items">
<div class="mdl-cell mdl-cell--4-col">
<mat-form-field class="search-form-field">
<input matInput type="text" name="searchCompany" placeholder="Search" [(ngModel)]="searchCompany"/>
<button *ngIf="searchCompany" matSuffix mat-icon-button aria-label="Clear" (click)="searchCompany=''">
<mat-icon>close</mat-icon>
</button>
</mat-form-field>
</div>
</div>
这是我的 CompanyFilterPipe 类:
import { PipeTransform, Pipe } from "@angular/core";
import { Company } from "../../models/company.model";
@Pipe({
name : 'companyFilter'
})
export class CompanyFilterPipe implements PipeTransform{
transform(companies:Company[], searchCompany:String) : Company[]{
const value = searchCompany.toLowerCase();
if(!companies == !searchCompany){
return companies;
}
return companies.filter(companies => companies.perusahaan.toLowerCase().indexOf(value) !== -1);
}
}
我已经在 app.module.ts 上声明了 CompanyFilterPipe,但它不能正常工作,我该如何解决这个问题?谢谢。
【问题讨论】:
-
但是您没有在模板中的任何地方使用
companyFilter? -
我只在这个页面使用。
-
使用 if 来考虑 searchCompany 不为空: if (searchCompany){...}else{return []} //返回一个空数组