即使我的数组长度评估为零,ng-show也不会显示Div

时间:2016-11-27 03:22:52

标签: angularjs ng-show

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

我希望上面的Div标签在我的ToBuy.Items数组中包含一些元素时不显示。 Div标签应该仅在ToBuy.Items数组中没有项目时才出现。

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

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

ngShow需要一个表达式,因此您不希望在其中添加花括号。请尝试以下方法:

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

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

答案 1 :(得分:1)

删除ng-show

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

<强> DEMO

答案 2 :(得分:1)

尝试使用ng-hide

ng-hide='ToBuy.Items.length'

ng-hide='ToBuy.Items'

我认为两者都应该有效。