我使用ng-repeat将我的记录显示为:
<ul ng-repeat= 'stu in students'>
<li>{{stu.name}}</li>
<li>{{stu.age}}</li>
<li><button ng-click="show()">show</button></li>
<li ng-show="showThis">Hello {{stu.name}}</li>
</ul>
并在我的控制器中:
$scope.show = function () {
$scope.showThis = true ;
};
所以,当我点击任何一个节目按钮时,它会显示所有学生的姓名, 但我想只展示一个被选中的学生。如何仅将此范围与选定记录绑定?
答案 0 :(得分:3)
方法1。在每次迭代ngRepeat
上创建一个新的子范围。您可以在相应的控制器方法中使用this
关键字引用当前的一个。例如:
$scope.show = function() {
this.showThis = true;
};
这将成为一个技巧。
演示:http://plnkr.co/edit/857DsN6EYI21sEvn15Ul?p=preview
方法2。您只需将当前学生参考传递给show
方法并设置其showThis
属性:
<ul ng-repeat='stu in students'>
<li>{{stu.name}}</li>
<li>{{stu.age}}</li>
<li>
<button ng-click="show(stu)">show</button>
</li>
<li ng-show="stu.showThis">Hello {{stu.name}}</li>
</ul>
在控制器中:
$scope.show = function(student) {
student.showThis = true;
};