The*_*Tsg 6 html typescript angular
如我所见router: Router和router.url: string。所以我找不到任何解释,为什么它在html中抱怨router.url === '/successlogin'。任何的想法?
更新:我更改了路由器的类型,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">
Run Code Online (Sandbox Code Playgroud)
零件
import { Router } from '@angular/router';
constructor( public router: Router) { code here }
Run Code Online (Sandbox Code Playgroud)
此消息来自VSCode的“ Angular Language Service”扩展!
可能是更新,因为在我没有此消息之前...
我发现的2个解决方案是这样使用的localeCompare():
router.url.localeCompare('/successLogin')===0
Run Code Online (Sandbox Code Playgroud)
要么
用String代替string
快速修复此问题:
a)将“/successlogin”存储在某个变量中并与该变量进行比较
成分
import { Router } from '@angular/router';
export class someComponent {
successLogin = '/successlogin';
constructor( public router: Router) { code here }
}
Run Code Online (Sandbox Code Playgroud)
网页
<div *ngIf="!global.showUnauthorizedMessage || router.url === successLogin" class="beforeFooter"></div>
<div *ngIf="!global.showUnauthorizedMessage || router.url === successLogin" id="footer">
Run Code Online (Sandbox Code Playgroud)
请注意,由于这似乎是一条路径,因此从可维护性的角度来看,理想情况下应该从常量文件中读取它。
干杯(y)