【问题标题】:Cannot read property 'MyProperty' of undefined无法读取未定义的属性“MyProperty”
【发布时间】:2016-03-01 08:23:16
【问题描述】:

在我的 Angular2 模板中,我有以下绑定:

{{Stringify(result)}}
{{result.MyProperty}}

Stringify 是一个返回输入对象的JSON.stringify 的函数。 Stringify 函数返回一个 JSON 字符串,其中显示了 MyProperty 的名称和值。

但是,第二行返回一个

类型错误。无法读取 {{result.MyProperty}} 中未定义的属性“MyProperty”。

JSON.stringify 明明显示这个属性/字段存在,为什么会报错?

【问题讨论】:

标签: javascript json angular


【解决方案1】:

如果它在那里可以访问并且JS不会抛出

试试吧

{{result?.MyProperty}}

也许 Angular 在result 有值之前尝试访问result.MyProperty,而Stringify(result) 不会阻塞null。 当 result 同时更新时(可能是因为从服务器接收到值,视图会在您识别之前显示空字符串之前更新。
您的问题没有提供足够的背景信息。

另见

【讨论】:

  • 你是对的。结果是从订阅中的 Web 服务调用填充的。它在有机会渲染之前就坏了,所以添加“?”修好了。
  • Günter Zöchbauer,你能分享一下你的解决方案的参考吗?这对我来说是新的,我想知道更多。谢谢
  • @kennasoft github.com/angular/angular/issues/791。如果nullundefined 之前的表达式不计算?. 之后的表达式,而是返回null
  • 谢谢。这是一个非常方便的功能。
  • @kennasoft,Günter 提供的 github 链接很好读。如果你想要一个 Angular.io 文档链接,Elvis 运算符在模板语法文档中讨论,Template expression operators 部分。
猜你喜欢
  • 2021-08-05
  • 1970-01-01
  • 2020-04-06
  • 2020-10-30
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多