Angular Parsor错误:在从8到12的角度更新过程中出现意外标记
我从8点到12点在做角度版本更新。其中我得到了这个构建错误Angular Parsor错误:在从8到12的角度更新过程中出现意外标记,angular,angular12,Angular,Angular12,我从8点到12点在做角度版本更新。其中我得到了这个构建错误 error NG5002: Parser error: Unexpected token {, expected identifier, keyword, or string at column 2 in [{{maxLength}}]} My component.html错误行如下所示 <div> <span>Characters left: {{maxLength - formInputs.acco
error NG5002: Parser error: Unexpected token {, expected identifier, keyword, or string at column 2 in [{{maxLength}}]}
My component.html错误行如下所示
<div>
<span>Characters left: {{maxLength - formInputs.accountStatusReasonComment?.length}}</span>
</div>
左字符:{{maxLength-formInputs.accountStatusReasonComment?.length}
这个表达式在Angular 12中有更新吗?有什么想法吗?如果输入.accountStatusReasonComment的
未定义,表达式可能会变为{{maxLength-}
。对于Angular 8,直到运行时才能找到它,但从Angular 9开始,Ivy AoT是默认的渲染引擎。它可能会发现这样有用的边缘案例错误
您可以尝试以下操作,而不是使用安全导航操作符
左字符:{{maxLength-(formInputs.accountStatusReasonComment.length | | 0)}
如果未定义formInputs.accountStatusReasonComment.length
,则将使用数值0
。如果未定义formInputs.accountStatusReasonComment
,则表达式可能会缩减为{maxLength-}
。对于Angular 8,直到运行时才能找到它,但从Angular 9开始,Ivy AoT是默认的渲染引擎。它可能会发现这样有用的边缘案例错误
您可以尝试以下操作,而不是使用安全导航操作符
左字符:{{maxLength-(formInputs.accountStatusReasonComment.length | | 0)}
如果未定义formInputs.accountStatusReasonComment.length
的格式,则将使用数字0
。看起来不错,您可以在stackblitz上共享吗?也许maxLength会员不是公开的。看起来不错,你能在stackblitz上分享吗?也许maxLength会员不公开。谢谢Michael,我会试试这个。我有另一个类似{{reasonObject&&reasonObject.settings?reasonObject.settings.okbuttoname:“保存更改”}的场景,这个场景也会引发错误。有什么解决办法吗?@NithinPaul:您可能需要在短路中再降低一级:{(reasonObject&&reasonObject.settings&&reasonObject.settings&&reasonObject.okbuttonname)?reasonObject.settings.okbuttonname:'save changes'}
@NithinPaul:如果您正在使用,您可以直接在模板中使用:{{reasonobject.settings.okbuttoname???'save changes'}
。再次感谢,我尝试了倒数第二个选项,现在我得到了这样一个消息-“{{maxLength}中第12列的解析器错误:意外标记}”,我给出了您提到的确切语法。我不确定倒数第二个选项是什么意思。你是说nullisch凝聚算子吗?还要确保模板中访问的所有变量(maxLength
、formInputs
和reasonobject
)都是public
。谢谢Michael,我会尝试一下。我有另一个类似{{reasonObject&&reasonObject.settings?reasonObject.settings.okbuttoname:“保存更改”}的场景,这个场景也会引发错误。有什么解决办法吗?@NithinPaul:您可能需要在短路中再降低一级:{(reasonObject&&reasonObject.settings&&reasonObject.settings&&reasonObject.okbuttonname)?reasonObject.settings.okbuttonname:'save changes'}
@NithinPaul:如果您正在使用,您可以直接在模板中使用:{{reasonobject.settings.okbuttoname???'save changes'}
。再次感谢,我尝试了倒数第二个选项,现在我得到了这样一个消息-“{{maxLength}中第12列的解析器错误:意外标记}”,我给出了您提到的确切语法。我不确定倒数第二个选项是什么意思。你是说nullisch凝聚算子吗?还要确保模板中访问的所有变量(maxLength
、formInputs
和reasonobject
)都是public
。