私はng-repeat
を使用して3つのポップアップを作成し、1つのフィルタを開発しています。すべてのポップアップが同じクラス名と異なるIDを持つAngularのみですべてをやりたい各ボタンで、ポップアップを1つ表示したいと思うので、残りの部分を隠したいと思う。クリックするとangularJSのdivを非表示にします
1つのスコープ変数を使用して1つのコードを取得しましたが、正常に動作しています。私はこれを行うための他のよりよい方法があるかどうかを知りたい。
jQueryでは2行のコードでこれを行うことができますが、これを効率よくAngularで行う方法はわかりません。
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">
これはうまくいきますが、これはより良い方法があるかどうかを知りたいと思っています。
このようなスコープ変数の使用を避ける方法が他にもある場合は、 – user3501613