Ich erstelle 3 Popups mit ng-repeat
für die Entwicklung eines Filters. Ich möchte alles nur in Angular machen, wobei jedes Popup denselben Klassennamen und eine andere ID hat. Bei jedem Klick klicke ich auf ein Popup und ich möchte den Rest ausblenden.Verstecken und Zeigen div in angularJS auf Klick
Ich habe einen Code mit einer Scope-Variablen und es funktioniert gut. Ich möchte wissen, ob es noch einen anderen besseren Weg gibt, dies zu tun.
In jQuery können wir dies mit 2 Zeilen Code, aber ich weiß nicht, wie dies effizient in Angular tun.
app.controller('MainCtrl', function($scope) {
$scope.IsVisible = [false];
$scope.mainList = [];
var obj = {};
obj.name = "swimlanes";
obj.list = [];
$scope.mainList.push(obj);
obj = {};
obj.name = "programs";
obj.list = [];
$scope.mainList.push(obj);
obj = {};
obj.name = "programs";
obj.list = [];
$scope.mainList.push(obj);
//click event of rect trangle
$scope.click = function(key, index) {
var flag = $scope.IsVisible[index];
$scope.IsVisible = [false];
$scope.IsVisible[index] = !flag;
$scope.myObj = {
"top": key.currentTarget.offsetTop + "px",
"left": key.currentTarget.clientWidth + 10 + "px"
}
}
});
<div ng-repeat="val in mainList" id={{val.name}} class="mainPopup" ng- show="IsVisible[$index]" ng-style="myObj">
Das wird gut funktionieren, aber ich möchte wissen, ob es einen besseren Weg gibt.
Wenn es andere Möglichkeiten gibt, diese Verwendung von Scope-Variablen zu vermeiden. – user3501613