如何显示/隐藏变量是否为空


82

我想基于变量是否为null显示/隐藏div。

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

注意:在我的情况下,变量是一个对象。

这是一个非常简单的问题,但我似乎无法使其正常工作。

谢谢。



myvar ==可能为空
Gruff Bunny

2
myvar假定什么非空值?ng-show将显示任何truthy价值,所以只要myvarfalsenullundefined0,空字符串或者NaN它应该工作。请发布更多有关上下文的代码。
菲利普·里查特

需要澄清的是,上面的示例确实有效,我的代码出于不相关的原因而没有。如果mylar为false,null或之前从未使用过(即从未调用过$ scope.myvar或$ rootScope.myvar),则div将不会显示。一旦为它分配了任何值,div就会显示,除非该值明确为false。
Paul Haggo 2014年

Answers:


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 Peller

ng-show会将表达式翻译为$scope.myvar != $scope.nullor$scope.myvar != null吗?(这里贴出的问题stackoverflow.com/questions/31387397
jperelli

Angular将使用javascript null。您真的不想开始将null添加到范围中,因为null应该始终为null(加上angular将忽略$ scope.null,如果在表达式中使用它)。
Gruff Bunny 2015年

20

需要澄清的是,上面的示例确实有效,示例中的代码由于不相关的原因而无法正常工作。

如果myvar为false,null或之前从未使用过(即从未调用过$ scope.myvar或$ rootScope.myvar),则div将不会显示。一旦为它分配了任何值,div就会显示,除非该值明确为false。

以下将导致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
它应该是真实的或虚假的。
Rodrigo Oliveira 2014年

保罗,您的退还物品是什么?
Rodrigo Oliveira 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.