web-dev-qa-db-ja.com

オペラントが同様のタイプまたは任意のAngular

私は解決策を見つけることができないこの問題を受け取りました enter image description here

私が見たようにrouter: Routerおよびrouter.url: string。だから私はそれがhtmlで不平を言っている理由をrouter.url === '/successlogin'。何か案が?

更新:ルーターの種類を変更しました、router.url: Stringと今は大丈夫ですが、私は逆に動作するはずです。なんでこんなことが起こっているの?これまでは、stringStringではなく「正しい」タイプだと思っていました...

私のコードは単純化されました:

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 }
9
TheodoreTsg

このメッセージは、VSCodeの「Angular Language Service」拡張からのものです!

以前はこのメッセージがなかったので、おそらく更新です...

私が見つけた2つの解決策は、次のようにlocaleCompare()を使用することです。

router.url.localeCompare('/successLogin')===0

または

Stringの代わりにstringを使用

10
A. Morel

これのクイックフィックス:

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
yanky_cranky