【问题标题】:How to show/hide if variable is null如果变量为空,如何显示/隐藏
【发布时间】:2014-01-27 21:07:00
【问题描述】:

我想根据变量是否为空来显示/隐藏 div。

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

注意:在我的例子中,变量是一个对象。

一个非常简单的问题,但我似乎无法解决问题。

谢谢。

【问题讨论】:

  • myvar == null 也许
  • myvar 假定哪些非空值? ng-show 将显示任何 truthy 值,因此只要 myvar 不是 falsenullundefined0、空字符串或 NaN,它应该可以工作。请为上下文发布更多代码。
  • 澄清一下,上面的例子确实有效,我的代码没有出于无关的原因。如果 mylar 为 false、null 或以前从未使用过(即从未调用过 $scope.myvar 或 $rootScope.myvar),则不会显示 div。一旦为它分配了任何值,就会显示 div,除非该值特别是 false。

标签: angularjs


【解决方案1】:
<div ng-hide="myvar == null"></div>

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

【讨论】:

  • 最好使用&lt;div ng-hide="myvar == null"&gt;&lt;/div&gt; 而不是&lt;div ng-show="myvar != null"&gt;&lt;/div&gt;。它更具可读性。
  • @maicher 这真的取决于上下文
  • ng-show 是否将表达式转换为$scope.myvar != $scope.null$scope.myvar != null? (在这里发布问题stackoverflow.com/questions/31387397
  • Angular 将使用 javascript null。您真的不想开始将 null 添加到范围,因为 null 应该始终为 null(如果在表达式中使用,加角将忽略 $scope.null 它)。
【解决方案2】:

为了澄清,上面的示例确实有效,示例中的代码由于不相关的原因而无效。

如果 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;

【讨论】:

    【解决方案3】:

    在这种情况下,myvar 应该是一个布尔值。如果这个变量为true,它会显示div,如果它是false..它会隐藏。

    签出this

    【讨论】:

    • 那么你是说它只有在 myvar 是布尔值时才有效?
    • 我想找到一个解决方案,其中 myvar 是一个对象。谢谢。
    • 应该是真假。
    • 保罗,你的对象返回是什么?
    猜你喜欢
    • 2018-12-31
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多