Angularjs手风琴按钮单击面板标题

Alp*_*aca 25 accordion angularjs angular-ui-bootstrap

在AngularJS UI Bootstrap中我想在单击面板标题时激活isopen,但我找不到方法.此版本仅在您单击链接时激活.

这是我尝试过的;

<accordion-group is-open="isopen">
    <accordion-heading ng-click="isopen=!isopen">
        I can have markup, too! 
        <i class="pull-right glyphicon" 
           ng-class="{'glyphicon-chevron-down': isopen, 'glyphicon-chevron-right': !isopen}"></i>
    </accordion-heading>
    This is just some content to illustrate fancy headings.
</accordion-group>
Run Code Online (Sandbox Code Playgroud)

ng-click ="isopen =!isopen "

这是我在Plunker上尝试的链接

AngularJS UI Bootstrap

提前致谢..

klo*_*ode 59

编辑: 一个更好的解决方案是移动ng-click="isopen=!isopen"accordion-group元素.这样,面板打开/关闭,单击面板标题上的任何位置,包括边缘.

<accordion close-others="oneAtATime">
    <accordion-group is-open="isopen" ng-click="isopen=!isopen">
        <accordion-heading >
           I can have markup, too! 
           <i class="pull-right glyphicon" 
              ng-class="{'glyphicon-   chevron-down': isopen, 'glyphicon-chevron-right': !isopen}">
           </i>
        </accordion-heading>
        This is just some content to illustrate fancy headings.
    </accordion-group>
</accordion>
Run Code Online (Sandbox Code Playgroud)

结束编辑

附上的内容<accordion-heading><div>

<accordion close-others="oneAtATime">
    <accordion-group is-open="isopen" >
        <accordion-heading ng-click="isopen=!isopen">
           <div>
            I can have markup, too! 
           <i class="pull-right glyphicon" 
              ng-class="{'glyphicon-   chevron-down': isopen, 'glyphicon-chevron-right': !isopen}">
           </i>
           </div>
       </accordion-heading>
       This is just some content to illustrate fancy headings.
   </accordion-group>
</accordion>
Run Code Online (Sandbox Code Playgroud)

  • 这种方法存在一个问题,它只能使文本区域可以点击而不是整个控件,所以如果你点击边缘附近它将无法工作.你可以在这里看到http://plnkr.co/edit/0aiIabxogB1oKIhbjHXa (2认同)

Sea*_*ean 13

一个非常简单的基于CSS的解决方案:

    .panel-heading {
        padding: 0;
    }

    .panel-title a {
        display: block;
        padding: 10px 15px;
    }
Run Code Online (Sandbox Code Playgroud)

我不是使用复杂的标题 - 只是如下所示的标题属性,所以我没有用上面的例子测试它.

<uib-accordion-group heading="Details" class="form-horizontal" is-open="true">
Run Code Online (Sandbox Code Playgroud)


Arc*_*ano 9

您需要做的是更改accordion-group.html模板,使标题记录ng-click事件.

<div class="panel {{panelClass || 'panel-default'}}">
  <div class="abc panel-heading" ng-keypress="toggleOpen($event)" ng-click="toggleOpen($event)" >
    <h4 class="panel-title">
      <a href tabindex="0" class="accordion-toggle" accordion-transclude="heading"><span ng-class="{'text-muted': isDisabled}">{{heading}}</span></a>
    </h4>
  </div>
  <div class="panel-collapse collapse" collapse="!isOpen">
      <div class="panel-body" ng-transclude></div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

然后在您的代码中将其指定为模板的url accordion-group

<accordion-group heading="Dynamic Body Content" template-url="accordion-group.html">
Run Code Online (Sandbox Code Playgroud)

示例:http: //plnkr.co/edit/EXUgyNi8hrqQbh5maJUx?p = preview