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
相关产品推荐
相关产品推荐

