angular - 角度:如何处理角度材料表中的空值
问题描述
我想根据状态申请 css 类。例如:如果状态为,则应在 html中分配Pass
css 类。如果 api return ,我如何处理该值。我收到此错误消息。我相信这是由状态中的空值引起的。.dot .pass
span
null
status: null
ERROR TypeError: Cannot read property 'css' of undefined
status.constant.ts
export const STATUSES_KEY = {
notChecked: 'NOT_CHECKED',
pass: 'PASS',
na: 'NA',
fail: 'FAIL'
};
export const STATUS_STYLING = {
[STATUSES_KEY.notChecked]: {
text: 'Not Checked',
css: 'dot notChecked',
},
[STATUSES_KEY.pass]: {
text: 'Pass',
css: 'dot pass',
},
[STATUSES_KEY.fail]: {
text: 'Fail',
css: 'dot fail',
}
};
应用程序.ts
generateStatusClass(status: string) {
if (status) {
return STATUS_STYLING[status].css;
} else {
return;
}
}
应用程序.html
<span *ngIf="col === 'status'" class="{{ generateStatusClass(element[col]) }}"></span>
解决方案
在您的generateStatusClass(status: string)
方法中,您正在检查是否status
为真,但如果字典中的状态值存在(例如na
不存在),则不是。把代码改成这样;
generateStatusClass(status: string) {
if (status && STATUS_STYLING[status]) {
return STATUS_STYLING[status].css;
} else {
return;
}
}
另外,我不确定是否class={{...}}
有效。你可能想把它改成ngClass
,像这样;
<span *ngIf="col === 'status'" [ngClass]="generateStatusClass(element[col])"></span>
推荐阅读
- python - 在 PCollection 中为每个元素添加标签
- javascript - 我可以在不使用firebase数据库的情况下将参数保存在firebase中并在我的网站上以js文件读取吗?
- javascript - 显式数组属性与 JavaScript 中的变量
- python - 我是 python 新手,我目前正在使用 python 3x,但我总是收到这个错误,有人可以帮助我吗
- c# - 为什么添加参数化构造函数时默认构造函数不起作用?
- android - 设置视图和材料设计导航
- c# - IEnumerable
'不包含异步任务方法的'GetAwaiter'的定义 - spring - HTTP 状态 500 - 处理程序 [Controller Object] 没有适配器:DispatcherServlet 配置需要包含 HandlerAdapter
- objective-c - 可可绑定到阵列控制器崩溃
- python - 如何使用 Boto3 get_query_results 方法从 AWS Athena 创建数据框