Javascript 使用angular在内部循环中隐藏整个div? 按钮{{i}
以上是我现在拥有的代码。我希望这样,当您单击循环中的一个按钮(Button1、Button2、Button3)时,整个div都被隐藏。 然而,我发现我只能在按钮位于外部时隐藏整个div,如下所示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}}
<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}
})