求angular控制显示隐藏问题,思路

<div>[特码]</div>//想让这个div的显示与掩藏与下面的多个input关联,如果任意一个input里面有输入值,那么显示,如果所有的input都没输入值,那么隐藏,该怎么做,最好有个demo,谢谢指点!
<span ng-repeat="(key, item) in items" >
  <span>{{item}}</span>
</span>

想让这个div的显示与掩藏与下面的多个span关联,如果任意一个span里面的item值不为0或者空,那么显示,如果所有的span值都为0或者为空,那么隐藏,该怎么做,最好有个demo,谢谢指点!

阅读 3.3k
1 个回答

代码

<div></div ng-show="input-1 || input-2 || input-3 || input-4">//想让这个div的显示与掩藏与下面的多个input关联,如果任意一个input里面有输入值,那么显示,如果所有的input都没输入值,那么隐藏,该怎么做,最好有个demo,谢谢指点!
<input ng-model="input-1"/>
<input ng-model="input-2"/>
<input ng-model="input-3"/>
<input ng-model="input-4"/>

解释

利用angular双向绑定与ng-show指令实现。

原问题修改版本答案

<div ng-show="needShow()">[特码]</div>//想让这个div的显示与掩藏与下面的多个input关联,如果任意一个input里面有输入值,那么显示,如果所有的input都没输入值,那么隐藏,该怎么做,最好有个demo,谢谢指点!
<span ng-repeat="(key, item) in items" >
  <span>{{item}}</span>
</span>
$scope.needShow = function(){
 for(var index in $scope.items) {
    if($scope.items[index] > 0){
        return true;
    }
 }
 return false;
}

解释

  1. 思考问题的时候不要去和html关联。你的问题不是span里面的数据是啥。而是items里面的数据状态。所以应该和items来思考。抛弃你的jQuery式的思考模式吧。

  2. 这里自定义了一个bool函数用来控制ng-show

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题