angular - 索引“无法读取属性 'toLowerCase' of null ”时出现角度错误
问题描述
好吧,这是一个小搜索应用程序,根据关键字搜索值。
应用程序运行完美,直到我打开 if 条件employee.name
,employee.phone
但是当我在 if 条件下获得更多属性时开始混乱,例如employee.jobTitle
and employee.email
。
我想要的是,我可以通过name
,email
和得到phone
结果jobTitle
。
如果有人可以帮助我了解我在这里缺少的东西,我将不胜感激。
app.component.ts
ngOnInit() {
this.getEmployees();
}
public getEmployees():void {
this.employeeService.getEmployees().subscribe(
(response: Employee[])=>{
this.employees = response;
},
(error: HttpErrorResponse) => {
alert(error.message);
}
);
}
public searchEmployees(key: string): void {
console.log(key);
const results: Employee[] = [];
for (const employee of this.employees) {
if (employee.name.toLowerCase().indexOf(key.toLowerCase()) !== -1
|| employee.email.toLowerCase().indexOf(key.toLowerCase()) !== -1
|| employee.phone.toLowerCase().indexOf(key.toLowerCase()) !== -1
|| employee.jobTitle.toLowerCase().indexOf(key.toLowerCase()) !== -1) {
results.push(employee);
}
}
this.employees = results;
if (results.length === 0 || !key) {
this.getEmployees();
}
}
app.component.html
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="collapse navbar-collapse" id="navbarColor02">
<form class="form-inline my-2 my-lg-0">
<input type="search" (ngModelChange)="searchEmployees(key.value)" #key="ngModel"
ngModel name="key" id="searchName" class="form-control mr-sm-2" placeholder="Search
employees..." required>
</form>
</div>
</nav>
<div *ngFor="let employee of employees" class="col-md-6 col-xl-3">
<p>Name: {{employee?.name}}</p>
<p>Job title: {{employee?.jobTitle}}</p>
<p>Email : {{employee?.email}}</p>
<p> Phone : {{employee?.phone}}</p>
解决方案
您必须将文件tsconfig.json的内容更改为
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"module": "esnext",
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
"lib": [
"es2018",
"dom"
]
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true
}
}
推荐阅读
- c++ - 用户定义的类型特征给出了意外的错误类型
- python - 使用 pandas 数据框时使用 append 后列的顺序发生了变化
- python - 不能得到小于 1 的值
- java - 如何在没有 google play 的情况下在 Android 上安装更新?
- java - Java JDOM2 XML将元素添加到现有的孩子
- javascript - Json输出奇怪的字符
- c# - 在 Selenium C# 中的 Chromium Edge 浏览器中,在 IE 模式下禁用/删除浏览器的信息栏
- azure - 如何在将文件上传到 azure blob 存储容器时使用添加元数据/标签并将其用于在 blob 触发器中进行过滤
- html - 有没有办法在引导程序中使用 jquery 插件“rdmGrid”?
- javascript - 为什么我的 for 循环只读取我创建的数组的最后一个元素?