【问题标题】:ng-show doesn't show the Div even when my Array length evaluates to Zero即使我的数组长度计算为零,ng-show 也不显示 Div
【发布时间】:2016-11-27 15:55:09
【问题描述】:

<div class="emptyMessage" ng-show="{{ToBuy.Items.length}}==0" > Everything is bought! {{ToBuy.Items.length}} </div>

当我的 ToBuy.Items 数组中有一些元素时,我希望上面的 Div 标记不显示。只有在 ToBuy.Items 数组中没有任何元素时才应该出现 Div 标签。

当我从数组 (Tobuy.Items) 中删除所有元素时,表达式仅显示 ng-show="0==0" 并且 Div 标签不会显示在网页上。

非常感谢任何帮助。

【问题讨论】:

    标签: angularjs ng-show


    【解决方案1】:

    ngShow 需要一个表达式,因此您不想在其中放置花括号。请尝试以下操作:

    ng-show='ToBuy.Items.length == 0'
    

    我建议将此表达式设置为控制器上的属性,而不是检查ToBuy.Items.length == 0。业务逻辑属于控制器,而不是视图。

    【讨论】:

    • 非常感谢。那行得通。业务逻辑中控制器的优点
    【解决方案2】:

    去掉ng-show里面的表达式,

       <div ng-controller="MyCtrl">
            <div ng-show="ToBuy.Items==0"> Everything is bought! {{ToBuy.Items.length}} </div>   
        </div>
    

    DEMO

    【讨论】:

      【解决方案3】:

      尝试使用 ng-hide

      ng-hide='ToBuy.Items.length'
      

      ng-hide='ToBuy.Items'
      

      我认为两者都应该工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-14
        • 1970-01-01
        • 1970-01-01
        • 2014-08-09
        • 1970-01-01
        • 1970-01-01
        • 2017-06-25
        相关资源
        最近更新 更多