首页 > 解决方案 > 无法读取未定义的属性“状态” - 函数实际工作之前出错?

问题描述

我正在使用下拉菜单,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[];
}

标签: javascriptangulartypescript

解决方案


尝试isCurrent像这样扩展您的功能:

isCurrent(status: string): boolean {
    // firstly check that event exists
    return this.event && this.event.status == status;
}

似乎event在开始时未定义或为 null 并且异步获取值,晚于第一次检查运行。


推荐阅读