angular - 解析器错误:从 8 到 12 的角度更新期间出现意外标记
问题描述
我正在从 8 到 12 进行 Angular 版本更新。其中我收到了这个构建错误。
error NG5002: Parser error: Unexpected token {, expected identifier, keyword, or string at column 2 in [{{maxLength}}]}
我的 component.html 错误行如下所示
<div>
<span>Characters left: {{maxLength - formInputs.accountStatusReasonComment?.length}}</span>
</div>
这个表达式在 Angular 12 中有任何更新吗?任何想法 ?
解决方案
如果formInputs.accountStatusReasonComment
未定义,则表达式可能会缩减为{{maxLength - }}
。使用 Angular 8 直到运行时才能找到它,但是从 Angular 9 开始,Ivy AoT 是默认的渲染引擎。它可能会发现这样有用的边缘情况错误。
您可以尝试以下操作,而不是安全导航运算符
<span>
Characters left: {{ maxLength - (formInputs.accountStatusReasonComment.length || 0) }}
</span>
如果未定义,这里0
将使用数字。formInputs.accountStatusReasonComment.length
推荐阅读
- caching - Janusgraph 缓存
- numpy - 如何从具有以下形状的 SVD 组件重建原始矩阵?
- vue.js - 在 .vue 上创建多个模块
- javascript - 为什么动态特殊字符在我的反应路由器中不起作用?
- azure-sql-database - 从 Azure SQL VM 到 Azure SQL DB 的脱机 DMS 迁移
- spring - 为什么我的自定义 Spring PropertySourceLoader 解析的应用程序配置值没有被使用?
- api - 空手道 - 任何不丑陋的方式来发送带有每个请求正文字段格式错误请求的 API 请求?
- c++ - 在 C++ 中安装和使用 Wacom SDK
- python - 没有换行符的 Python 输入
- django - 从任务 Django+Celery 返回数据