Angular's form validation docs具有以下代码示例:
<div *ngIf="name.errors?.['required']">
Name is required.
</div>
像我见过的name.errors?['required']
这样的语法是有意义的。
像我见过的name.errors?.required
这样的语法是有意义的。
把圆点和括号name.errors?.['required']"
结合起来,我没见过。它在Chrome中似乎不是有效的Javascript,Uncaught SyntaxError: Unexpected token '['
。它是做什么的?
1条答案
按热度按时间lrpiutwd1#
这只是Optional Chaining的另一种语法。
像我见过的
name.errors?['required']
这样的语法是有意义的。这实际上是无效的语法!它将被计算为三进制(例如
a ? b : c
,只缺少空格),并将抛出错误requires all 3 expressions at the end of the expression
。正确的语法是点name.errors?.['required']
https://stackblitz.com/edit/angular-ivy-zjy17n?file=src/app/app.component.html