首页 > 解决方案 > 锚标记href中带有三元运算符的条件url抛出Parse Error Angular

问题描述

美好的一天开发者。我正在尝试在 html 模板中为我的锚标记 href 动态设置 URL,但我收到此错误:

Parser Error: Got interpolation ({{}}) where expression was expected at column 30 in 
[somevariable?['/somelink/{{ some.id }}?someparam={{ paramid }}&origin=origin']:'']

如果某些布尔类型的随机变量具有真值,则 href 将重定向到 URL,因此:

 <a [href]="(somevariable)?('/somelink/{{ some.id }}?someparam={{ paramid }}&origin=origin'):''">
 </a>         
        

有更好的方法吗?...在​​此先感谢

标签: angularhrefconditional-operator

解决方案


您可以将插值更改为:

<a href="{{ somevariable ? '/somelink/' + some.id + '?someparam=' + paramid + '&origin=origin' : '' }}">

somevariable但如果为假,您的锚标签可能最终没有链接。因此,我建议您改为使用以下方法隐藏该实例中的锚标记*ngIf

<a *ngIf="somevariable" href="{{ '/somelink/' + some.id + '?someparam=' + paramid + '&origin=origin' }}">

此外,我建议您routerLink改用hrefif /somelink/...is a route in your app,这样当用户点击(点击)链接时,您的应用不会重新加载。


推荐阅读