为什么我需要后缀"?" 在角形式验证属性中

Gov*_*han 2 angular-directive angular

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

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

mal*_*awi 6

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

没有?.操作员

 *ngIf="(heroForm.errors && heroForm.errors.identityRevealed) && ..." 
Run Code Online (Sandbox Code Playgroud)

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

 *ngIf="heroForm.hasError('identityRevealed') && ..."
Run Code Online (Sandbox Code Playgroud)

安全导航运营商

  • 或者更简单:`*ngIf ="heroForm.hasError('identityRevealed')&& ..."` (2认同)