错误TypeError:无法读取Object.eval中未定义的属性“ project_name” [作为updateRenderer]-Angular 8

时间:2019-12-09 06:19:22

标签: angular

有人可以解释出什么问题了吗? 即使定义(希望),我也收到此错误:

  

错误TypeError:无法读取未定义的属性“ project_name”       在Object.eval [作为updateRenderer](ProjectDetailComponent.html:23)       在Object.debugUpdateRenderer [作为updateRenderer](core.js:45294)

在ProjectDetailComponent.html

<h5 class="card-title">Name: {{ projectDetail.project_name }}</h5>

在ProjectDetailComponent.ts

projectDetail: Project;

使用项目作为具有以下属性的接口:

export interface Project {
    project_id: string;
    project_name: string;
    description: string;
}

同时,当我在控制台中登录时,它显示数据,如图所示; this link

3 个答案:

答案 0 :(得分:1)

您可以像这样初始化projectDetail

projectDetail: Project =  {
   project_id: null,
   project_name: "",
   description: ""
};

,或者您可以在模板中使用安全导航操作符 ?

{{ projectDetail?.project_name }}

Working Demo

答案 1 :(得分:0)

用ngIf检查代码包装代码

React Native

答案 2 :(得分:0)

或者,您可以将Project 定义为,而不是界面,如下所示:

export class Project {
  project_id: string;
  project_name: string;
  description: string;
}

由于它是,因此您可以使用projectDetail初始化new属性,如下所示:

@Component({....})
export class ProjectDetailComponent implements OnInit {
  ...
  projectDetail: Project = new Project();
  ...
}

现在,您可以在模板中使用安全导航器或一些虚拟数据。 而且,它不会给出此错误

<h5 class="card-title">Name: {{ projectDetail.project_name }}</h5>

我希望它将对其他人有所帮助:)