为什么我需要角形式验证属性中的后缀“?”[重复]

问题描述 投票:2回答:1

这个问题在这里已有答案:

<div *ngIf="heroForm.errors?.identityRevealed && (heroForm.touched || heroForm.dirty)" class="cross-validation-error-message alert alert-danger">
Name cannot match alter ego.</div>

上面为什么需要后缀?陷入错误

angular angular-directive
1个回答
6
投票

如果heroForm有效heroForm.errors将为null并且访问heroForm.errors.identityRevealed将抛出类型错误,如TypeError: Cannot read property 'identityRevealed' of null所以如果?.属性为null,identityRevealed运算符将处理不访问errors

没有?.运算符

 *ngIf="(heroForm.errors && heroForm.errors.identityRevealed) && ..." 

或者像@JB Nizet提到的那样简单

 *ngIf="heroForm.hasError('identityRevealed') && ..."

safe-navigation-operator

© www.soinside.com 2019 - 2024. All rights reserved.