我看到了router: Router
和router.url: string
。因此,找不到router.url === '/successlogin'
时为何在html中抱怨的任何解释。任何想法?
更新:我更改了路由器的类型router.url: String
,现在还可以,但是我认为应该相反。为什么会这样呢?直到现在,我还认为类型string
是“正确的”类型,而不是String
...
我的代码简化了:
HTML
<div *ngIf="!global.showUnauthorizedMessage || router.url === '/successlogin'" class="beforeFooter"></div>
<div *ngIf="!global.showUnauthorizedMessage || router.url ==='/successlogin'" id="footer">
组件
import { Router } from '@angular/router';
constructor( public router: Router) { code here }
答案 0 :(得分:2)
此消息来自VSCode中的“ Angular Language Service”扩展!
可能是更新,因为在我没有此消息之前。...
我发现2个解决方案是像这样使用show={showTooltipPass.toString()}
:
localeCompare()
或
使用router.url.localeCompare('/successLogin')===0
代替String
答案 1 :(得分:0)
快速解决方案:
a)将“ / successlogin”存储在某些变量中,并与该变量进行比较
组件
import { Router } from '@angular/router';
export class someComponent {
successLogin = '/successlogin';
constructor( public router: Router) { code here }
}
HTML
<div *ngIf="!global.showUnauthorizedMessage || router.url === successLogin" class="beforeFooter"></div>
<div *ngIf="!global.showUnauthorizedMessage || router.url === successLogin" id="footer">
注意,因为这似乎是一条路径,所以从可维护性的角度来看,理想情况下应从恒定文件中读取它。
干杯(y)
答案 2 :(得分:0)
有同样的问题。我将类型从String
更改为string
,错误消失了。