Javascript AngularJS:单击隐藏活动表并显示新表?
我有一个html表格,当我点击任何一行时,新表格会显示一些行数据的更具体信息。我正在使用Javascript AngularJS:单击隐藏活动表并显示新表?,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个html表格,当我点击任何一行时,新表格会显示一些行数据的更具体信息。我正在使用ng click,ng repeat和ng show。以下是我试图实现的目标:我希望这样做,当我单击某一行时,表显示;当我再次单击同一行时,表隐藏;当某一行处于活动状态时,如果单击另一行,则第一个表隐藏,新表显示。这是我的html: <tbody> <tr ng-repeat-start="car in carList | filter:tableFilter" ng-click="
ng click
,ng repeat
和ng show
。以下是我试图实现的目标:我希望这样做,当我单击某一行时,表显示;当我再次单击同一行时,表隐藏;当某一行处于活动状态时,如果单击另一行,则第一个表隐藏,新表显示。这是我的html:
<tbody>
<tr ng-repeat-start="car in carList | filter:tableFilter" ng-click="modelRow.activeRow = car.name; car.showDetails = !car.showDetails">
....
</tr>
<tr ng-repeat-end ng-show="modelRow.activeRow==car.name && car.allReviews.length!=0 && car.showDetails" class="hidden-table">
<td colspan="6">
<table class="table table-striped table-bordered table-condensed table-hover">
<tbody ng-repeat="rev in car.allReviews">
....
</tbody>
</table>
</td>
</tr>
</tbody>
最初,我的“showDetails”
在我的$scope.carList
数组中的每个对象中设置为false
然后,正如您在我的html中所看到的那样,我会单击ng=“modelRow.activeRow=car.name;car.showDetails=!car.showDetails”
它工作正常,但当我单击,例如,在
“大众高尔夫”
行,然后单击“福特福克斯掀背车”
,然后再次单击“大众高尔夫”
行时,该表将不会显示
这是因为当我在$scope.carList
数组中的任何行上单击一点时,“showDetails”
值被设置为true
而不是false
值
我如何解决这个问题,或者用什么替代方法来实现我的目标?
注意:我还需要一个不会减慢我的网站速度的解决方案,(我的$scope.carList
阵列有数百辆车)
$scope.func=函数(汽车){
如果(!$scope.showDetails){//打开信息
$scope.showDetails=true;
}如果($scope.modelRow.activeRow=car.name&&$scope.showDetails){
//信息已为打开,正在关闭
$scope.showDetails=false;
}否则{//info已打开,我们将打开新的
$scope.showDetails=true;
}
$scope.modelRow.activeRow=car.name;
}
carApp.controller("TableBodyCtrl", function($scope){
$scope.modelRow = { activeRow: '' };
$scope.carList = [{"name":"Ford Focus hatchback",...,"showDetails":false}...];