2017-05-05 190 views
2

私は少し混乱しています。私は結果がいくつかのケースの1つを持っている場合ブロックを非表示にする必要があります。しかし、正しく動作していないようです...角4:* ngIf複数の条件で

これはちょうど他の状態で出現しました。 1条件でも2でも動作しません。*ngIf="currentStatus !== ('open' || 'reopen') "でも試してみましたが、1つの場合のみOKです。

+0

予想される動作は何ですか?それは「真」と評価されるべきとき、そして「偽」と評価されるべきときはいつですか?例では –

答えて

10

この式は常にtrue次のようになります。

currentStatus !== 'open' || currentStatus !== 'reopen' 

おそらくあなたは

!(currentStatus === 'open' || currentStatus === 'reopen') 
(currentStatus !== 'open' && currentStatus !== 'reopen') 
の1を意味します
+0

どのような状態に応じて期待される動作は何ですか? –

+2

2番目の例が正しく動作しています。ありがとう! –

+1

@ Merge-pony '!(currentStatus === 'open' || currentStatus === 'reopen')'は 'currentStatus!== 'open'と同じ結果を返すので、ANDの代わりにORを使うと思われます。 && currentStatus!== '再オープン' – mankers

1

あなたは忍者を持っています ')'。

試してみてください。currentStatusは、常にこれらの2つの条件のいずれかに一致するので、冗長)ほかに

<div *ngIf="currentStatus !== 'open' || currentStatus !== 'reopen'"> 
+1

が間違っています。私の悪い。尋ねられた元のコード結果 –