【发布时间】:2018-01-27 14:52:45
【问题描述】:
使用此代码,我试图显示隐藏动态生成的 div。每个 div 应显示一个相应的按钮,该按钮将显示/隐藏相应的 div。如果我删除代码ng-show="isShown{{course.Id}}",那么 div 会正确显示,所以我没有正确组合 ng-show 中的 id 吗?
plnkr:http://plnkr.co/edit/JbVz231UuPLVGbIFuiwJ?p=preview
源代码:
<!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".
标签: angularjs