javascript - 无法读取未定义的属性“状态” - 函数实际工作之前出错?
问题描述
我正在使用下拉菜单,Angular 的 [selected] 标签似乎给我带来了一些问题......
看来,虽然我的代码带回了我所期望的一切,将显示的下拉值与我的事件的当前状态相匹配,但它抛出了一个错误,说明:
错误类型错误:无法读取未定义的属性“状态”
也许它试图在 [selected] 有机会实际查看之前为其赋值?有点跳枪?
html
<select>
<option *ngFor="let x of options" [selected]="isCurrent(x.name)">{{x.name}}</option>
</select>
零件
isCurrent(status: string): boolean {
return this.event.status == status;
}
this.event 是一个化妆对象:
export interface IEvent extends IEntity {
date: Date; // YYYY-MM-DD'T'HH:MM:ss.SSSZ
status: string;
stage: IEntity;
entrants?: IEntrant[];
}
解决方案
尝试isCurrent
像这样扩展您的功能:
isCurrent(status: string): boolean {
// firstly check that event exists
return this.event && this.event.status == status;
}
似乎event
在开始时未定义或为 null 并且异步获取值,晚于第一次检查运行。
推荐阅读
- android - Android Material Chip Margin Top 什么都不做
- javascript - 在 ng-class 中使用多个或嵌套三元运算符的最佳方法是什么?
- python-3.x - 为什么最后一个列表给出 NONEwhen 追加 dit 到它
- amazon-web-services - 将 AWS EC2 指标发送到 AWS Elasticsearch Service 域以在 Kibana 中进行监控
- r - ggplot图中圆圈上的线
- laravel - 我的表单没有将图像文件提交到控制器存储功能,这是什么问题
- python - 如何在 python docx 中检测列表的样式(项目符号或编号)?
- apache-kafka - Kafka Streams GlobalKTable 主题是否需要与它将加入的 KStream 主题相同数量的分区?
- c++ - 如何检测 C++ 中的组合键输入?
- sas - 根据以值结尾的值过滤 where 条件?