我正在尝试在组件模板中打印一个值。
但是我收到了上述错误
transform: translate3d()
我已从此问题的代码中删除了额外的内容。我想访问详细信息的第一行。
组件文件
Cannot read property 'name' of undefined
答案 0 :(得分:21)
我认为您应首先检查在浏览器中打印数据时是否定义了数据。
{{data[0]?.name}}
由于您的数据最初未定义,因此无法访问其名称属性。
Angular安全导航操作员(?。)流畅方便 防止属性路径中的null和未定义值的方法。这里 它是,如果currentHero是保护视图渲染失败 空。
您还可以使用&&
条件
{{data[0] && data[0].name}}
答案 1 :(得分:0)
从您的错误消息中,似乎data
未定义(或为空) - 并且错误发生在显示
{{data[0].name}}
可能在此之前加入console.log(data)
以验证发生了什么
答案 2 :(得分:0)
尝试将其放入构造函数而不是ngOnInit:
getPersonDetailsService.getData() ...
此外,如果“数据”没有长度>,您需要在模板内部进行一些检查。 0 {{data[0]?.name}}
答案 3 :(得分:0)
"数据的价值"从getData()服务解决响应后,会更新。我假设您正在点击服务并获取数据。然而,一旦服务返回响应,承诺将得到解决。 View同时尝试渲染模板,并且当它评估表达式data [0]时,它不会在0处找到任何元素,因为数据尚未从服务到达。因此,您得到错误,因为第0个索引处的元素未定义。
你应该在这里使用一个可观察的。