【问题标题】:ERROR TypeError: Cannot read property 'project_name' of undefined - Angular 8错误类型错误:无法读取未定义的属性'project_name' - Angular 8
【发布时间】:2019-11-11 02:06:18
【问题描述】:

我的ts代码编码是,


this.api.getPay(this.donationId).subscribe(
    data => {
        this.paymentData = data;
        this.paymentDetails = this.paymentData.donationDetails[0];
    }
)

我的html代码是这样的

Project :   <strong>{{paymentDetails.project_name}}</strong><br/>

Status:     <strong>{{paymentDetails?.status}}</strong><br/>

现在将显示project_nameStatus 的详细信息。控制台获取"ERROR TypeError: Cannot read property 'project_name' of undefined"

如果我添加了“?”喜欢


{{paymentDetails?.project_name}}

不显示详细信息。但是控制台没有任何错误。

同样的编码方法在 Angular 5/6 中运行良好。

Angular 8 有什么特殊方法???

TS 文件中我的控制台输出是

{
project_name: "test",
status: "true"
}

上一个问题是How to Display Values in Angular 8 Shows ERROR TypeError: Cannot read property 'project_name' of undefined

但解决方案不起作用

有人知道怎么解决吗?

【问题讨论】:

  • 如果在 html 中打印 paymentDetails 会发生什么?尝试将&lt;strong&gt;{{paymentDetails.project_name}}&lt;/strong&gt;&lt;br/&gt; 替换为&lt;strong&gt;{{paymentDetails | json }}&lt;/strong&gt;&lt;br/&gt; 以进行调试
  • @dco { project_name: "test", status: "true" } 显示
  • @dco 有什么解决办法吗?
  • 一切似乎都很好,检查您的组件是否没有changeDetection: ChangeDetectiongStrategy.OnPush 如果是,请将其删除并改回“?”在 html 标记中,然后将其添加回来并在订阅中进行更改检测。
  • @dco 我按照alligator.io/angular/change-detection-strategy 添加。我的错误已解决。谢谢

标签: angular8


【解决方案1】:

一切似乎都很好,检查你的组件是否没有

changeDetection: ChangeDetectiongStrategy.OnPush 

如果是这样,请将其删除并放回“?”在 html 标记中,然后将其添加回来并在订阅中进行更改检测

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 2021-12-16
    • 2021-11-05
    • 2019-04-15
    • 2018-11-21
    • 2020-05-25
    • 2019-03-13
    相关资源
    最近更新 更多