uib tpls open modal bootstrap angularjs accordion angular-ui-bootstrap

angularjs - open - ui bootstrap tpls 2.5 0



Angularjs acordeĆ³n ng-clic en el encabezado del panel (3)

En AngularJS UI Bootstrap quiero activar la apertura cuando se hace clic en el encabezado del panel , pero no pude encontrar una manera. En esta versión solo se activa si hace clic en el enlace.

Esto es lo que intenté;

<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>

ng-click = "isopen =! isopen "

Este es el enlace que probé en Plunker

AngularJS UI Bootstrap

Gracias por adelantado..


Lo que debe hacer es cambiar la plantilla de accordion-group.html para que el encabezado tome el evento 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>

Luego, en su código, especifíquelo como la plantilla-url para el accordion-group

<accordion-group heading="Dynamic Body Content" template-url="accordion-group.html">

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


Una solución muy simple basada en CSS:

.panel-heading { padding: 0; } .panel-title a { display: block; padding: 10px 15px; }

No estoy usando encabezados complejos, solo el atributo de encabezado que se muestra a continuación, así que no lo he probado con los ejemplos anteriores.

<uib-accordion-group heading="Details" class="form-horizontal" is-open="true">


EDITAR: Una solución mejor es mover ng-click="isopen=!isopen" al elemento de accordion-group . De esta manera, el panel se abre / cierra haciendo clic en cualquier parte del encabezado del panel, incluidos los bordes.

<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>

EDICIÓN FINAL

adjuntar el contenido de <accordion-heading> en un <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>