【问题标题】:Make multiple collapse using ui.bootstrap and AngularJS使用 ui.bootstrap 和 AngularJS 进行多次折叠
【发布时间】:2017-01-05 10:52:55
【问题描述】:

我正在尝试制作ui bootstrap collapse。当我使用静态单或双折叠系统时,它工作正常,但对于我的设计,我使用ng-repeat 来创建折叠,所以我不知道如何使用多重折叠,

我找到了这段代码,但它只适用于静态代码,

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()">&#x25BC;</span></td>
    <td>A beautiful title</td>
    <td>A beautiful description</td>
    <td>54,654<span class="pull-right" ng-click="toggleTraffic()">&#x25BC;</span
    </td>
</tr>

我希望这个设计是折叠的。

【问题讨论】:

    标签: javascript jquery html angularjs angular-ui-bootstrap


    【解决方案1】:

    试试这个,这可能对你有帮助。 here is working fiddle

      <body ng-app="my_app">
      <div ng-controller="CollapseDemoCtrl">
      <ul class="nav">
          <li ng-repeat="(key,val) in menuArray">
          <button class="btn" ng-click="val.isMenuCollapsed = !val.isMenuCollapsed">{{val.button}}
          <span class="caret"></span></button>
          <ul class="dropdown-links" collapse="val.isMenuCollapsed">
            <li ng-repeat="link in val.links" role="menuitem">
              <a href="#">{{link.title}}</a>
            </li>
          </ul>
         </li>
         </ul>
      </div>
    

    风格

        .nav>li {
        display: inline !important;
        position:relative;
    }
    .dropdown-links{
        position: absolute;
        left: 0;
        z-index: 1000;
        float: left;
        min-width: 100%;
        padding: 5px;
        margin: 2px 0 0;
        font-size: 14px;
        text-align: left;
        list-style: none;
        background-color: #fff;
        -webkit-background-clip: padding-box;
        background-clip: padding-box;
        border: 1px solid #ccc;
        border: 1px solid rgba(0,0,0,.15);
        border-radius: 4px;
        -webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175);
        box-shadow: 0 6px 12px rgba(0,0,0,.175);
    }
    

    控制器代码

    var my_app = angular.module('my_app', ['ui.bootstrap']);
    
    my_app.controller('CollapseDemoCtrl', function ($scope) {
    $scope.menuArray = [
       {'button':'Button1','isMenuCollapsed':true,'links':[{'title':'link1-1'},{'title':'link1-2'}]},
       {'button':'Button2','isMenuCollapsed':true,'links':[{'title':'link2-1'},{'title':'link2-2'}]}
     ];
      console.log($scope.menuArray);
    });
    

    【讨论】:

    • 感谢您的回答,但第一个我需要collapse 而不是dropdown angular-ui.github.io/bootstrap/#/collapse,第二个我需要一个打开时间而不是全部。 @DevidasKadam
    • 你可以在折叠中添加任何标记,我只是添加了下拉菜单。我将更新 fiddle 和 answer 以保持一次打开一个。
    • here 是更新后的小提琴,你可以从这个例子中得到一个想法并开发你自己的。终于你是开发者了。
    • 你是否注意到我使用了collapse="val.isMenuCollapsed",你可以在ul 中添加任何标记,或者你可以使用具有collapse 属性的div
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    相关资源
    最近更新 更多