このコードを使用して、非表示に動的に生成されたdivを表示しようとしています。各divには対応するdivを表示/非表示にする対応するボタンが表示されます。コードng-show="isShown{{course.Id}}"
を削除すると、divが正しく表示されるので、ng-show内のidを正しく組み合わせていないようです。AngularJSによって生成されたdivを動的に隠す
plnkr:http://plnkr.co/edit/JbVz231UuPLVGbIFuiwJ?p=preview
SRC:
<!DOCTYPE html>
<html ng-app>
<head>
<link href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css" rel="stylesheet" type="text/css" />
<link href="http://twitter.github.com/bootstrap/assets/css/bootstrap-responsive.css" rel="stylesheet" type="text/css" />
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js"></script>
<script>
function myCtrl($scope, $window) {
$scope.showHide = function(toShowOrHide) {
console.log('showhide : ' + JSON.stringify(toShowOrHide))
}
$scope.vm = {};
$scope.vm.Courses = [{
Id: 1,
Name: "Course 1",
isShown1: true
}, {
Id: 2,
Name: "Course 2",
isShown1: true
}];
$scope.isShown1 = true
$scope.isShown2 = true
}
</script>
</head>
<body ng-controller="myCtrl">
<div>
<div ng-repeat="course in vm.Courses">
<div>
<div ng-show="isShown{{course.Id}}" id={{course}}>
<label>{{course.Name}}</label>
<button ng-click="showHide(course)"> S/H </button>
</div>
</div>
</div>
</div>
</body>
</html>
あなたはそれが必要以上に、これはより困難にしています。各要素の 'isShown1'プロパティを参照するだけです。すなわち 'ng-show =" course.isShown1 "'となります。 – Claies