以下是扩展和表格的表格结构。崩溃,我已经完成了使用表。现在我使用下面的脚本进行折叠&扩大。但有时我成功地扩展了&有时不这样做。
我做了什么,当我从api得到回应时,我称这个功能为:
$timeout(function (){
$scope.initExpandCollapse();
},1000);
$scope.initExpandCollapse = function () {
angular.element(document).on("click", ".table_exp", function(){
var TBODY = angular.element(this).parents(3);
if(TBODY.hasClass("open")){
TBODY.children("tr.expand-table-row").hide();
TBODY.removeClass("open");
return false;
}
TBODY.addClass("open");
TBODY.children("tr.expand-table-row").show();
});
}
如果你们这些人,可以帮我解决这个问题。感谢。
答案 0 :(得分:1)
<强> CSS 强>:
tr.expand-table-row {
display: none;
}
tr.expand-table-row.open {
display: initial;
}
<强>角强>
$scope.expandCollapse = function expandCollapse (item) {
item.open = !item.open
}
<强> HTML 强>
<table>
<tbody>
<tr ng-repeat="item in items track by $index"">
<td ng-click="expandCollapse(item)">++++</td>
<td>
<table>
<tr ng-class="{'open': item.open}" class="expand-table-row open">
<td>{{item.name}}</td>
<td ng-repeat="data in item.options">{{data.name}}</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
您需要嵌套表格,因此点击标记不会随其余部分消失,除了突出点是设置类ng-class="{'open': item.open}"
的{{1}}表达式,如果属性open
项目已设置。
答案 1 :(得分:0)
尝试使用window.onload
代替$timeout
,或将脚本添加到body标记的末尾。