不确定这是否是特定的离子或角度问题。我不知道调用{{}}是什么,因此很难找到任何解决方案。
我有一个相当简单的HTML显示
<ion-content padding>
<ion-card>
<ion-card-content>
<ion-row>
<ion-col>
<h2>Record: {{teamStanding.wins}}-{{teamStanding.losses}}</h2>
<p>Coach: {{team.coach}}</p>
</ion-col>
<ion-col>
<!-- Placeholder -->
</ion-col>
</ion-row>
</ion-card-content>
</ion-card>
</ion-content>
teamStanding和团队使用ionViewDidLoad
中的数据填充问题是,当导航到此页面时,我收到有关“无法读取属性'获取'未定义”的错误 它在没有做过ionViewDidLoad的情况下这样做 - 它只是从不命中它,它会抛出错误并停止一切。
现在,如果这是angularJS {{teamStanding.wins}}只是空白,直到它停止未定义...更令人困惑的是,我正在研究的这个项目是一个跟随复数的教程,其中这个完全相同的代码执行没有错误 - 似乎将未定义的数据放入教师的{{}}中并不会导致错误。是什么赋予了?为什么这不会像我期望的那样无声地失败?
显然,如果我将teamStanding声明为一个空对象,这段代码会毫无错误地执行,但如果我正在做类似teamStanding.thing.thing.thing.thing的事情,我需要创建一个临时/虚拟对象{thing:{thing :{thing:{thing:}}}}只是为了让它工作到ionViewDidLoad!
答案 0 :(得分:3)
具体是安全导航操作员的用途。如果您熟悉其他语言的Elvis运算符,那就是同样的事情。因此,在您的示例中,它将是:
{{ teamStanding?.wins }} - {{ teamStanding?.losses }}
这样,null或undefined对象不会抛出异常。
答案 1 :(得分:0)
我不知道调用了{{}}是什么,因此很难找到任何解决方案。 这称为“插值”,“数据绑定”。
为了解决您的问题,我建议您使用safe operator,因为当HTML模板尝试获取时,teamStanding属性可能确实未定义。