使用带有angularjs的bootstrap折叠

时间:2014-01-29 16:01:57

标签: angularjs twitter-bootstrap

我正在尝试在我的角度应用程序中包含以下bootstrap可折叠面板。但是,当我单击“展开”时,角度似乎看到href="#collapseOne",然后重定向到主页而不是折叠面板。我的路由看起来像这样,我认为otherwise({redirectTo: '/home'});导致问题。有什么建议吗?

angular.module('App')
.config(['$routeProvider', function($routeProvider) { 
$routeProvider.
  when('/users', {templateUrl: 'partials/users/user-list.html', controller: 'UserCtrl'}).
  when('/users/new', {templateUrl: 'partials/users/user-new.html', controller: 'UserNewCtrl'}).
  when('/users/:userid', {templateUrl: 'partials/users/user-detail.html', controller: 'UserDetailCtrl'}).


  otherwise({redirectTo: '/home'});
}]);

小组 -

<div class="panel-group" id="accordion">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
          Expand
        </a>
      </h4>
    </div>
    <div id="collapseOne" class="panel-collapse collapse in">
      <div class="panel-body">
        ...
      </div>
    </div>
  </div>
  </div>

5 个答案:

答案 0 :(得分:90)

正如类似问题Here中所述,只需通过数据目标属性更改您的href

<div class="panel-group" id="accordion">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a href="javascript:;" data-toggle="collapse" data-parent="#accordion" data-target="#collapseOne">
          Expand
        </a>
      </h4>
    </div>
    <div id="collapseOne" class="panel-collapse collapse in">
      <div class="panel-body">
        ...
      </div>
    </div>
  </div>
</div>

答案 1 :(得分:16)

您可以使用AngularJS UI Bootstrap中的accordion指令,该指令构建在twitter bootstrap崩溃指令之上。

示例:

 <accordion >
    <accordion-group heading="Static Header, initially expanded" is-open="true">
      This content is straight in the template.
    </accordion-group>
 </accordion>

实例:http://jsfiddle.net/choroshin/U89bW/3/

答案 2 :(得分:8)

我遇到了同样的问题,我并不想在bootstrap之外添加额外的库。根据建议,您可以使用data-target="#your-collapsing-element",完全删除href属性。

基础知识

要使面板折叠,您需要:

  1. 在用于触发崩溃的元素上:

    data-toggle="collapse" data-target="#my-collapsing-element"
    
  2. 关于折叠的元素:

    id="my-collapsing-element"
    
  3. 在包裹&#34;触发器&#34;的元素上元素和折叠元素:

    class="panel"
    
  4. 全部放在一起

    您可以选择添加父元素以使其成为组的一部分,并添加添加css类&#34; collapse in&#34;折叠元素使其默认状态关闭。一个完整的例子:

    <div id="accordion">
        <div class="panel">
            <a data-toggle="collapse" data-parent="#accordion" data-target="#collapse1">
                Heading 1
            </a>
            <div id="collapse1">
                Content for panel 1
            </div>
        </div>
        <div class="panel">
            <a data-toggle="collapse" data-parent="#accordion" data-target="#collapse2">
                Heading 2
            </a>
            <div id="collapse2" class="collapse in">
                Content for panel 2
            </div>
        </div>
    </div>
    

    使用<button>元素而不是<a>可以获得更好的按钮行为。覆盖.panel的bootstrap样式可以通过为panel css类添加自己的样式来完成。

    <div class="panel its-my-panel">

    .panel.its-my-panel {
      margin-bottom: 0;
      background-color: transparent;
      border: none;
      border-radius: 0;
      -webkit-box-shadow: none;
      box-shadow: none;
    }
    

    &#13;
    &#13;
    .my-panel-heading {
      cursor: pointer;
    }
    /* Overrides for .panel--theonly required bootstrap class */
    
    .panel.my-panel-overrides {
      margin-bottom: 0;
      background-color: transparent;
      border: none;
      border-radius: 0;
      -webkit-box-shadow: none;
      box-shadow: none;
    }
    &#13;
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    <div id="accordion">
      <div class="panel my-panel-overrides">
        <a class="my-panel-heading" data-toggle="collapse" data-parent="#accordion" data-target="#collapse1">
            Collapsible Group 1</a>
        <div id="collapse1" class="collapse in">
          Content for panel 1
        </div>
      </div>
      <div class="panel my-panel-overrides">
        <a class="my-panel-heading" data-toggle="collapse" data-parent="#accordion" data-target="#collapse2">
            Collapsible Group 2</a>
        <div id="collapse2" class="collapse">
          Content for panel 2
        </div>
      </div>
      <div class="panel my-panel-overrides">
        <a class="my-panel-heading" data-toggle="collapse" data-parent="#accordion" data-target="#collapse3">
            Collapsible Group 3</a>
        <div id="collapse3" class="collapse">
          Content for panel 3
        </div>
      </div>
    </div>
    &#13;
    &#13;
    &#13;

答案 3 :(得分:2)

  1. 更改所有href以展开 - 折叠为data-target
  2. 要展开和折叠的data-target
  3. iddiv不应包含连字符。

答案 4 :(得分:0)

单击下面的按钮,通过课程更改显示和隐藏另一个元素:

  • 崩溃隐藏内容

  • 在过渡期间应用
  • 折叠

  • 崩溃 .in显示内容

您可以使用带有 href 属性的链接,也可以使用带有数据目标属性的按钮。在这两种情况下,都需要 data-toggle =“collapse”

请查看以下示例。

Bootsrap Example

<div class="panel-group" id="accordion">
   <div class="panel panel-default">
      <div class="panel-heading">
      <h4 class="panel-title">
       <a href="javascript:;" data-toggle="collapse" data-parent="#accordion" data-target="#collapseOne">
        Expand
       </a>
     </h4>
   </div>
   <div id="collapseOne" class="panel-collapse collapse in">
      <div class="panel-body">
    ...
   </div>
 </div>