如何在AnglujarJS ng中继器中选择特定元素
How to select a specific element in an AnglujarJS ng-repeater?
我对Angular完全陌生,所以我不确定执行以下操作的正确方法是什么:我有一个中继器,它为每次迭代生成两个tr元素。第二个tr元素最初是隐藏的。我想展示单击第一个元素时的第二个tr元素。如何使用Angular完成此操作?
<tbody>
<tr ng-repeat-start="student in students" ng-click="showDetails()">
<td>{{ $index + 1 }}</td>
<td>{{ student.name }}</td>
<td>{{ student.age }} </td>
</tr>
<tr ng-repeat-end ng-hide="true">
<td colspan="3">
<!-- Detailed information goes here -->
</td>
</tr>
</tbody>
希望您已经设置好了控制器。您的$scope.showDetails
方法应该类似于:
$scope.showRow = [];
$scope.showDetails = function (idx) {
$scope.showRow[idx] = true;
}
然后,将ng-hide="true"
更改为ng-hide="showRow"
。
<tbody>
<tr ng-repeat-start="student in students" ng-click="showDetails($index)">
<td>{{ $index + 1 }}</td>
<td>{{ student.name }}</td>
<td>{{ student.age }} </td>
</tr>
<tr ng-repeat-end ng-hide="showRow[$index]">
<td colspan="3">
<!-- Detailed information goes here -->
</td>
</tr>
</tbody>
编辑:使用了@AviadP建议的更改。这将考虑多个学生。
在控制器内部写入
$scope.hideRow = true;
$scope.showDetails = function () {
$scope.hideRow = false;
}
并在ng-hide
中添加hideRow范围
<tbody>
<tr ng-repeat-start="student in students" ng-click="showDetails()">
<td>{{ $index + 1 }}</td>
<td>{{ student.name }}</td>
<td>{{ student.age }} </td>
</tr>
<tr ng-repeat-end ng-hide="hideRow">
<td colspan="3">
<!-- Detailed information goes here -->
</td>
</tr>
</tbody>
请在此处查看我的演示:https://jsfiddle.net/4ggbog6u/
我为每个学生提供一个属性,以决定是否显示细节
$scope.showDetails = function(index) {
$scope.students[index].detailOn = !$scope.students[index].detailOn;
}
演示:https://jsfiddle.net/0yLk4znh/
修改了几件事:
ng-hide
改为ng-show
为学生添加showDetails
属性
因此,您可以隐藏所有元素,只使选定的行可见。
相关文章:
- WebdriverIO waitForExist()选择元素's选定的选项
- 如何选择元素的第n个子元素
- Angular没有根据模型更新我的选择元素
- jquery使用name from变量按类选择元素
- 如何使用jQuery按数据日期属性选择元素
- 向html选择元素添加选项
- 使用Jquery在相同类型的元素中选择元素
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- 如何在Angular中清除选择元素中的过滤器
- 使用其中一个元素作为参考点,从Javascript数组中选择元素
- Javascript选择元素到字符串的比较
- Angular始终选择选择元素中的第一个选项
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 通过 id json, jquery 选择元素
- 如何基于另一个已经存在的选择器选择元素
- 禁用多个选择元素中的非“选定”选项,但使用 jquery 的一个除外
- HTML 选择元素的只读等效项
- 在iPad上,如何通过Javascript事件在选择元素上设置focus()而不显示选项
- 单击事件似乎不适用于 IE 中的选择元素
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载