Fondamentalmente, sto cercando di modificare/personalizzare il comportamento di ui.bootstrap.accordion. Tutto funziona, tranne per l'integrazione con ui-router.
Ecco il modo in cui voglio usare la fisarmonica:Come far funzionare ui-sref di ui-router angolare quando si trova all'interno di un modello di direttiva?
<accordion> <!-- this element is actually separate view in a parent state of the accordion-group's below.-->
<accordion-group ui-sref="site.home.newsID_1"> <!-- accordion-groups will be generated with ng-repeat.-->
<accordion-heading>
News 1
</accordion-heading>
<p>This is</p>
</accordion-group>
<accordion-group ui-sref="site.home.newsID_2">
<accordion-heading>
News 2
</accordion-heading>
<p>Home News's</p>
</accordion-group>
<accordion-group ui-sref="site.home.news.newsID_3">
<accordion-heading>
News 3
</accordion-heading>
<p>Preview and navigation</p>
</accordion-group>
</accordion>
Sotto sta il modello modificato della fisarmonica:
<div ng-mouseenter="isOpen = !isOpen" ng-mouseleave="isOpen = !isOpen">
<div class="accordion-group" ng-class="{transparentBackground: isClicked}">
<div class="accordion-heading">
<a id="link" ui-sref="site" class="accordion-toggle" ng-click="isClicked = !isClicked" accordion-transclude="heading">
{{heading}}
</a>
</div>
<div class="accordion-body" collapse="!isOpen && !isClicked">
<div class="accordion-inner" ng-transclude></div> </div>
</div>
</div>
Fondamentalmente la necessita 'site.home.newsID_X' di sostituire il 'sito' valore di ui-sref all'interno del modello.
Il mio tentativo è stato quello di impostare il valore dell'attributo ui-sref tramite il parametro 'elemento' dalla funzione di collegamento della direttiva accordionGroup come illustrato di seguito:
link: function(scope, element, attrs, accordionCtrl) {
element.find('#link').attr("ui-sref", attrs.uiSref)
[...]
}
Questo fa aggiornare la destinazione ui-sref, ma UI- router non genera il corrispondente dal href URL dello stato di riferimento, in modo da dopo che il DOM è reso sto ottenendo
<a ui-sref="site.home.newsID_1" href="#/site"></a>
invece dei previsti
<a ui-sref="site.home.newsID_1" href="#/site/home/newsID_1"></a>
Cosa mi manca?
Apprezzo il vostro tempo,
Jared
Hanno lo stesso problema. L'hai gestito per funzionare con la direttiva ui-sref? –
Ciao Puoi condividere il codice ... –