angular js - ng-hide/ng-show API 无法正常工作
angular js - ng-hide/ng-show API not working properly
这里我尝试在 angular js 中实现应用程序。我有一个用于所有子元素的 minimize/maximize 按钮,并将 minimize/maximize 按钮分隔到子元素内部。
但是当我点击 toggle
最小化它最小化所有子元素时。
问题是当我单击 toggleonce
时,它也会最小化所有子元素。
var dashboard = angular.module("dashboard",['ui.bootstrap']);
dashboard.controller('dash-control', ['$scope', function($scope) {
$scope.isHidden = false;
$scope.toggle = function(){
$scope.isHidden = !$scope.isHidden;
};
$scope.toggleonce= function()
{
if( this.isHidden === true)
this.isHidden = false;
else
this.isHidden = true;
};
}]);
查看:
<div class="contentpanel" ng-app="dashboard" ng-controller="dash-control as ctrl">
<button class="btn btn-white" type="button" ng-click="toggle()">
<i class="fa fa-minus-square"></i>
</button>
<div>
<a href="" class="tooltips" ng-click="toggleonce()" title="Minimize Panel">
<i class="fa fa-minus"></i>
</a>
<div class="row tinychart" ng-show="isHidden">Contenr Heading 1</div>
<div class="row tinychart" ng-hide="isHidden">Content Description 1</div>
</div>
<div>
<a href="" class="tooltips" ng-click="toggleonce()" title="Minimize Panel">
<i class="fa fa-minus"></i>
</a>
<div class="row tinychart" ng-show="isHidden">Contenr Heading 2</div>
<div class="row tinychart" ng-hide="isHidden">Content Description 1</div>
</div>
......
.....
.....
</div>
变量 $scope.isHidden 是一个控制器级变量,通过单击 toggleonce() 您可以在整个页面中将变量更改为 true(因为 'minimize panels' 都在控制器。因此,isHidden 的任何 ng-hide 都将被隐藏,从而导致全局 'minimise'。
您有两个选择:
1) 为每个最小化面板使用单独的变量,并在您单击相应的函数时切换该变量的值。还为其自己的变量编写面板级别的“ng-hide”。
2) 为所有 Minizable 面板编写一个独立的范围指令。并将其范围与控制器隔离。现在在指令中编写一个 toggleonce 函数,它在指令范围内更改 Hidden 变量的值。编写指令时必须使用以下语法:
.directive('minimizePanel', function() {
return {
scope: true,
};
您可以观看 this 视频以了解更多信息。
这里我尝试在 angular js 中实现应用程序。我有一个用于所有子元素的 minimize/maximize 按钮,并将 minimize/maximize 按钮分隔到子元素内部。
但是当我点击 toggle
最小化它最小化所有子元素时。
问题是当我单击 toggleonce
时,它也会最小化所有子元素。
var dashboard = angular.module("dashboard",['ui.bootstrap']);
dashboard.controller('dash-control', ['$scope', function($scope) {
$scope.isHidden = false;
$scope.toggle = function(){
$scope.isHidden = !$scope.isHidden;
};
$scope.toggleonce= function()
{
if( this.isHidden === true)
this.isHidden = false;
else
this.isHidden = true;
};
}]);
查看:
<div class="contentpanel" ng-app="dashboard" ng-controller="dash-control as ctrl">
<button class="btn btn-white" type="button" ng-click="toggle()">
<i class="fa fa-minus-square"></i>
</button>
<div>
<a href="" class="tooltips" ng-click="toggleonce()" title="Minimize Panel">
<i class="fa fa-minus"></i>
</a>
<div class="row tinychart" ng-show="isHidden">Contenr Heading 1</div>
<div class="row tinychart" ng-hide="isHidden">Content Description 1</div>
</div>
<div>
<a href="" class="tooltips" ng-click="toggleonce()" title="Minimize Panel">
<i class="fa fa-minus"></i>
</a>
<div class="row tinychart" ng-show="isHidden">Contenr Heading 2</div>
<div class="row tinychart" ng-hide="isHidden">Content Description 1</div>
</div>
......
.....
.....
</div>
变量 $scope.isHidden 是一个控制器级变量,通过单击 toggleonce() 您可以在整个页面中将变量更改为 true(因为 'minimize panels' 都在控制器。因此,isHidden 的任何 ng-hide 都将被隐藏,从而导致全局 'minimise'。 您有两个选择:
1) 为每个最小化面板使用单独的变量,并在您单击相应的函数时切换该变量的值。还为其自己的变量编写面板级别的“ng-hide”。
2) 为所有 Minizable 面板编写一个独立的范围指令。并将其范围与控制器隔离。现在在指令中编写一个 toggleonce 函数,它在指令范围内更改 Hidden 变量的值。编写指令时必须使用以下语法:
.directive('minimizePanel', function() {
return {
scope: true,
};
您可以观看 this 视频以了解更多信息。