You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 17.0.0-next.6新控制流模板报NG5002错误求助

解决Angular 17新控制流@if的NG5002错误

问题场景

在Angular 17.0.0-next.6新项目中,使用新控制流语法替换app.component.html内容为:

@if(title) {
  title
} @else {
  no title
}

执行后触发两条NG5002错误:

  • Invalid ICU message. Missing '}'
  • Unexpected character "EOF"

报错原因

模板中直接书写title时,Angular会将其识别为ICU国际化消息格式的语法,而非组件变量的引用,这种不符合ICU规范的写法导致模板解析器报错。

修复方案

将模板中的变量引用改为Angular标准的插值语法{{title}},修改后的代码如下:

@if(title) {
  {{title}}
} @else {
  no title
}

另外确认项目已启用新控制流(Angular 17+新项目默认启用),若未手动启用,需在tsconfig.json中添加配置:

{
  "angularCompilerOptions": {
    "experimentalControlFlow": true
  }
}

内容的提问来源于stack exchange,提问作者Robert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 17:02:02