【问题标题】:What's the significance of a dot before brackets in a template, eg name.errors?.['required']模板中括号前的点有什么意义,例如 name.errors?[\'required\']
【发布时间】:2023-01-14 04:44:46
【问题描述】:

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 '['。它是做什么的?

【问题讨论】:

    标签: javascript angular


    【解决方案1】:

    这只是 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多