Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用angular在内部循环中隐藏整个div? 按钮{{i}_Javascript_Jquery_Angularjs_Ng Repeat_Ng Show - Fatal编程技术网

Javascript 使用angular在内部循环中隐藏整个div? 按钮{{i}

Javascript 使用angular在内部循环中隐藏整个div? 按钮{{i},javascript,jquery,angularjs,ng-repeat,ng-show,Javascript,Jquery,Angularjs,Ng Repeat,Ng Show,以上是我现在拥有的代码。我希望这样,当您单击循环中的一个按钮(Button1、Button2、Button3)时,整个div都被隐藏。 然而,我发现我只能在按钮位于外部时隐藏整个div,如下所示 <div id="whole-div" ng-hide="hideme"> <div id="loop-div" ng-repeat="i in [1, 2, 3]"> <button ng-click="hideme=true">Button {{i}}

以上是我现在拥有的代码。我希望这样,当您单击循环中的一个按钮(Button1、Button2、Button3)时,整个div都被隐藏。 然而,我发现我只能在按钮位于外部时隐藏整个div,如下所示

<div id="whole-div" ng-hide="hideme">
  <div id="loop-div" ng-repeat="i in [1, 2, 3]">
    <button ng-click="hideme=true">Button {{i}}</button> 
  </div>
</div>

按钮{{i}
最后按钮

有没有办法使用loop div中的一个内部按钮隐藏整个div?提前谢谢

请检查工作示例:

HTML:


ng repeat
创建一个局部范围,使变量
hideme
属于该局部范围。实际上有3个变量
hideme
,每个变量都在一个按钮的范围内

在$parent作用域上设置属性应该有效,并使hideme变量对于整个
div

var-app=angular.module('app',[]);
应用程序控制器('MainCtrl',函数($scope){
});

全部展示
按钮{{i}
试试看

或者

$scope.hideme = false;
$scope.hideDivFunction= function(){
    $scope.hideme = !$scope.hideme; //in case toggle is required.
}

我建议您更改控制器上的$scope值

$scope.hideDivFunction= function(){
angular.element( document.querySelector('#whole-div')).toggle();
    }
$scope.hideOuterDiv = function() {
    $scope.hideme = true;
};
<div id="whole-div" ng-hide="hideme">
  <div id="loop-div" ng-repeat="i in [1, 2, 3]">
    <button ng-click="hideDivFunction();">Button {{i}}</button> 
  </div>
</div>
$scope.hideme = false;
$scope.hideDivFunction= function(){
    $scope.hideme = !$scope.hideme; //in case toggle is required.
}
$scope.hideDivFunction= function(){
angular.element( document.querySelector('#whole-div')).toggle();
    }
<div id="whole-div" ng-hide="hideme" ng-controller="myCtrl">
  <div id="loop-div" ng-repeat="i in [1, 2, 3]" >
    <button ng-click="hide()">Button {{i}}</button> 
  </div>
</div>
app.controller('myCtrl',function($scope){
  $scope.hide = function(){$scope.hideme = true}
})