Grundsätzlich versuche ich, das Verhalten des ui.bootstrap.accordion zu ändern/anzupassen. Alles funktioniert, außer der Integration mit dem UI-Router.
Hier ist die Art, wie ich das Akkordeon verwenden mag:Wie bekomme ich den ui-sref von ui-router, der in der Vorlage einer Direktive liegt?
<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>
Im Folgenden ist die modifizierte Vorlage des Akkordeons:
<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>
Grundsätzlich ist die Notwendigkeit, ‚site.home.newsID_X‘ den ‚Standort‘ zu ersetzen Wert von ui-sref innerhalb der Vorlage.
Mein Versuch, den Wert von ui-sref Attribute über die ‚Element‘ Parameter aus der Verknüpfungsfunktion der accordionGroup Richtlinie wie unten gezeigt eingestellt war: das Ziel ui-Sref,
link: function(scope, element, attrs, accordionCtrl) {
element.find('#link').attr("ui-sref", attrs.uiSref)
[...]
}
aktualisiert Dies tut aber UI- Router nicht die entsprechende href aus der uRL des Staates verwiesen erzeugen, so dass nach dem DOM gemacht wird erhalte ich
<a ui-sref="site.home.newsID_1" href="#/site"></a>
statt der erwarteten
<a ui-sref="site.home.newsID_1" href="#/site/home/newsID_1"></a>
Was fehlt mir?
ich Ihre Zeit zu schätzen wissen,
Jared
Haben Sie das gleiche Problem. Haben Sie damit gearbeitet, um mit der ui-sref-Direktive zu arbeiten? –
Hi Können Sie den Code teilen ... –