私は自分のディレクティブのツールチップを作成していますが、何とか4つすべてが表示されるか、緑のdivでクリックされません。私がここで間違っていることを教えてください。一度に1つずつディレクティブを表示する - AngularJS
ワーキングPlnkr - https://plnkr.co/edit/Rk2hMz6gmKPlN3IhKMYE?p=preview
HTML -
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="UTF-8">
<title>Test</title>
<link rel="stylesheet" href="style.css" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body ng-controller="mainCtrl">
<div class="con-div" ng-repeat="row in fakeDataSet" ng-click="data.clicked = !data.clicked">
<test-div click-val="data.clicked"></test-div>
</div>
</body>
</html>
はJavaScript -
var myApp = angular.module('myApp', []);
myApp.controller('mainCtrl', function($scope){
$scope.fakeDataSet = [1,2,3,4];
$scope.data = {};
$scope.data.clicked = false;
});
myApp.directive('testDiv', function(){
return {
restrict: 'EA',
scope: {
clickVal: "="
},
link: function (scope, element, attrs){
console.log("clickVal", scope.clickVal);
},
template: '<div class="tooltip" ng-if="clickVal">This is a tooltip</div>'
};
})
このディレクティブのすべてのインスタンスを同じスコープにバインドしています。 clickValは常にdata.clickedにバインドされます。これはすべてのディレクティブに供給される同じ値になります。別々の動作が必要な場合は、各インスタンスのプロパティを作成する必要があります – thsorens