変数がnullの場合に表示/非表示にする方法


82

変数がnullかどうかに基づいてdivを表示/非表示にしたいのですが。

<div ng-show="myvar"></div>

注:私の場合の変数はオブジェクトです。

非常に簡単な質問ですが、うまくいかないようです。

ありがとう。



myvar == nullおそらく
Gruff Bunny

2
null以外の値は何をmyvar想定していますか?ng-showいずれかのために表示されますtruthyのように限り、値myvarではありませんfalsenullundefined0、空の文字列またはNaNそれが動作するはずです。コンテキストのためにもう少しコードを投稿してください。
Philipp Reichart 2014年

明確にするために、上記の例は機能しますが、私のコードは無関係な理由で機能しませんでした。mylarがfalse、null、または以前に使用されたことがない場合(つまり、$ scope.myvarまたは$ rootScope.myvarが呼び出されたことがない場合)、divは表示されません。値が割り当てられると、値が特にfalseの場合を除いて、divが表示されます。
Paul Haggo 2014

回答:


200
<div ng-hide="myvar == null"></div>

または

<div ng-show="myvar != null"></div>

16
<div ng-hide="myvar == null"></div>代わりに使用することをお勧めします<div ng-show="myvar != null"></div>。それはより読みやすいです。
maicher 2015年

12
@maicherそれは本当に文脈に依存します
Petr

ng-showは式を$scope.myvar != $scope.nullまたはとして変換しますか$scope.myvar != null?(ここに掲載質問stackoverflow.com/questions/31387397
jperelli

Angularはjavascriptnullを使用します。nullは常にnullである必要があるため、とにかくスコープにnullを追加し始めたくはありません(さらに、Angularは式で使用されている場合は$ scope.nullを無視します)。
グラフバニー

20

明確にするために、上記の例は機能しますが、例の私のコードは無関係の理由で機能しませんでした。

myvarがfalse、null、または以前に使用されたことがない場合(つまり、$ scope.myvarまたは$ rootScope.myvarが呼び出されたことがない場合)、divは表示されません。値が割り当てられると、値が特にfalseの場合を除いて、divが表示されます。

次の場合、divが表示されます。

$scope.myvar = "Hello World";

または

$scope.myvar = true;

以下はdivを非表示にします:

$scope.myvar = null;

または

$scope.myvar = false;

2

この場合、myvarはブール値である必要があります。この変数がtrueの場合、divが表示され、falseの場合、非表示になります。

これをチェックてください。


それで、myvarブール値である場合にのみ機能すると言っているのですか?
ロバートハーベイ

myvarがオブジェクトであるソリューションを見つけたいと思っています。ありがとう。
Paul Haggo 2014年

1
それは真実か偽物でなければなりません。
ロドリゴオリベイラ

ポール、あなたのオブジェクトは何を返しますか?
ロドリゴオリベイラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.