ui.bootstrap.collapse - 两个折叠 - 一次只能打开一个
ui.bootstrap.collapse - two collapse - only one should open at a time
我正在使用 ui.bootstrap 的折叠按钮,并且在 table 行中有两个折叠按钮,我希望一个折叠按钮在另一个打开之前关闭。
目前,第二个坍塌会额外打开,以便两者都打开并堆叠在一起。
我搜索并找到了使用 bootstrap 和 jquery (http://jsfiddle.net/RfsS9/5/) 解决此问题的方法,但我想坚持使用 angularjs。
有人知道如何用 angular 方法解决这个问题吗?
这是我的(简化)代码:
<table class="table table-bordered">
<thead>
<tr>
...
</tr>
</thead>
<tbody>
<tr>
<td>/<span class="pull-right" ng-click="urlCollapsed = !urlCollapsed">▼</span></td>
...
<td>54,654<span class="pull-right" ng-click="trafficCollapsed = !trafficCollapsed">▼</span></td>
</tr>
<!-- UrlDetails -->
<tr collapse="!urlCollapsed">
<td colspan="4" style="background-color: pink"></td>
</tr>
<!-- trafficDetails -->
<tr collapse="!trafficCollapsed">
<td colspan="4" style="background-color: blue"></td>
</tr>
</tbody>
</table>
以及作为 plunker 的完整代码:
http://plnkr.co/edit/T5iUXTL130p93tzNiera?p=preview
您应该做的是在展开流量面板时将 urlCollapsed
设置为 false
并在展开 url 时将 trafficCollapsed
设置为 false
面板。
更简洁的方法是为每个状态设置一个切换功能,如下所示。
JS
var app = angular.module("MyApp", ['ui.bootstrap']);
app.controller('mainController', function ($scope) {
$scope.trafficCollapsed = false;
$scope.urlCollapsed = false;
$scope.toggleUrl = function () {
$scope.urlCollapsed = false;
$scope.trafficCollapsed = !$scope.trafficCollapsed
};
$scope.toggleTraffic = function () {
$scope.trafficCollapsed = false;
$scope.urlCollapsed = !$scope.urlCollapsed;
};
});
HTML
<tr>
<td>/<span class="pull-right" ng-click="toggleUrl()">▼</span></td>
<td>A beautiful title</td>
<td>A beautiful description</td>
<td>54,654<span class="pull-right" ng-click="toggleTraffic()">▼</span></td>
</tr>
我正在使用 ui.bootstrap 的折叠按钮,并且在 table 行中有两个折叠按钮,我希望一个折叠按钮在另一个打开之前关闭。
目前,第二个坍塌会额外打开,以便两者都打开并堆叠在一起。
我搜索并找到了使用 bootstrap 和 jquery (http://jsfiddle.net/RfsS9/5/) 解决此问题的方法,但我想坚持使用 angularjs。
有人知道如何用 angular 方法解决这个问题吗?
这是我的(简化)代码:
<table class="table table-bordered">
<thead>
<tr>
...
</tr>
</thead>
<tbody>
<tr>
<td>/<span class="pull-right" ng-click="urlCollapsed = !urlCollapsed">▼</span></td>
...
<td>54,654<span class="pull-right" ng-click="trafficCollapsed = !trafficCollapsed">▼</span></td>
</tr>
<!-- UrlDetails -->
<tr collapse="!urlCollapsed">
<td colspan="4" style="background-color: pink"></td>
</tr>
<!-- trafficDetails -->
<tr collapse="!trafficCollapsed">
<td colspan="4" style="background-color: blue"></td>
</tr>
</tbody>
</table>
以及作为 plunker 的完整代码: http://plnkr.co/edit/T5iUXTL130p93tzNiera?p=preview
您应该做的是在展开流量面板时将 urlCollapsed
设置为 false
并在展开 url 时将 trafficCollapsed
设置为 false
面板。
更简洁的方法是为每个状态设置一个切换功能,如下所示。
JS
var app = angular.module("MyApp", ['ui.bootstrap']);
app.controller('mainController', function ($scope) {
$scope.trafficCollapsed = false;
$scope.urlCollapsed = false;
$scope.toggleUrl = function () {
$scope.urlCollapsed = false;
$scope.trafficCollapsed = !$scope.trafficCollapsed
};
$scope.toggleTraffic = function () {
$scope.trafficCollapsed = false;
$scope.urlCollapsed = !$scope.urlCollapsed;
};
});
HTML
<tr>
<td>/<span class="pull-right" ng-click="toggleUrl()">▼</span></td>
<td>A beautiful title</td>
<td>A beautiful description</td>
<td>54,654<span class="pull-right" ng-click="toggleTraffic()">▼</span></td>
</tr>