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