12

Heute habe ich eckig-UI-Bootstrap-Paket von 1.3 auf 2.0 aktualisiert und das wirft mir den Fehler unten.angular-ui-Bootstrap Upgrade 1.3.3 bis 2.0.0 fehlt uibAccordionGroup Controller

Error: [$compile:ctreq] Controller 'uibAccordionGroup', required by directive 'uibAccordionHeading', can't be found! http://errors.angularjs.org/1.5.7/ $compile/ctreq?p0=uibAccordionGroup&p1=uibAccordionHeading

Dies ist der betroffene Teil des Codes:

<div> 
    <uib-accordion> 
     <uib-accordion-group is-open="true"> 
      <uib-accordion-heading> 
       {{vm.moduleMenu.name}}<i class="pull-right glyphicon"></i> 
      </uib-accordion-heading> 

      <div>... other content...</div> 
     </uib-accordion-group> 
    </uib-accordion> 
</div> 

Was ich bisher tat, dieses Problem zu lösen:

  • ich, ob die richtigen Dateien geprüft werden, enthalten -> Fein
  • Ich überprüfte den neuen Quellcode, ob der Name der Direktive geändert wurde - es nicht, es sollte
  • funktionieren 0
  • Ich suchte nach uibAccordionGroup Controller, ich habe es nicht gefunden ...
  • Ich bewegte die Überschrift in uib-Akkordeon-Gruppe-Tag - der Fehler verschwunden, aber es gibt keinen Stil angewendet, nur die Überschrift Text angezeigt wird
  • ich löschte die UIB-Akkordeon-Position, das Ergebnis, wie oben das gleiche ist, wird der Inhalt des Akkordeons angezeigt, aber es gibt keinen Stil dieses Problem erfüllte zuvor

jemand noch angewandt?

Bibliotheken:

  • Winkel 1.5.7
  • Winkel-ui 2.0.0

Danke,

+0

Warum wird es downvoted? – SayusiAndo

+0

Meine Vermutung ist, dass jemand der Meinung war, dass diese Frage keine Forschungsergebnisse enthält, da Dinge wie der Code Repo und Changelog dieses Problem ziemlich leicht erklärt hätten. Schließlich ist es die beste Vorgehensweise, Changelogs zu durchsuchen, wenn man größere Versionen (und manchmal sogar kleinere) upgradet. –

+0

Danke für Ihre Antwort! Versionshinweise und Changelogs befinden sich auf meiner Checkliste. – SayusiAndo

Antwort

29

Sie erhalten diesen Fehler, weil die Syntax von eckigen ui Bootstrap geringfügig von Version 1.3 auf Version 2.0 geändert hat.

Hier ist ein Auszug aus dem Akkordeon Beispiel auf der Website:

<uib-accordion close-others="oneAtATime"> 
<div uib-accordion-group class="panel-default" heading="Static Header, initially expanded" is-open="status.isFirstOpen" is-disabled="status.isFirstDisabled"> 
    This content is straight in the template. 
</div> 
<div uib-accordion-group class="panel-default" heading="{{group.title}}" ng-repeat="group in groups"> 
    {{group.content}} 
</div> 
<div uib-accordion-group class="panel-default" heading="Dynamic Body Content"> 
    <p>The body of the uib-accordion group grows to fit the contents</p> 
    <button type="button" class="btn btn-default btn-sm" ng-click="addItem()">Add Item</button> 
    <div ng-repeat="item in items">{{item}}</div> 
</div> 
<div uib-accordion-group class="panel-default" heading="Custom template" template-url="group-template.html"> 
    Hello 
</div> 
<div uib-accordion-group class="panel-default" is-open="status.isCustomHeaderOpen" template-url="group-template.html"> 
    <uib-accordion-heading> 
    Custom template with custom header template <i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.isCustomHeaderOpen, 'glyphicon-chevron-right': !status.isCustomHeaderOpen}"></i> 
    </uib-accordion-heading> 
    World 
</div> 
<div uib-accordion-group class="panel-danger" heading="Delete account"> 
    <p>Please, to delete your account, click the button below</p> 
    <button class="btn btn-danger">Delete</button> 
</div> 
<div uib-accordion-group class="panel-default" is-open="status.open"> 
    <uib-accordion-heading> 
    I can have markup, too! <i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.open, 'glyphicon-chevron-right': !status.open}"></i> 
    </uib-accordion-heading> 
    This is just some content to illustrate fancy headings. 
</div> 

Beachten Sie, dass Akkordeon-Gruppe ist heute ein Attribut und kein Element.

Dies sollte Ihr Problem lösen.

+0

Danke, ich könnte es die ganze Nacht lang beobachten, um es herauszufinden. – SayusiAndo

3

In v2.0.0, uib-accordion-group ist jetzt ein Attribut kein Element . Sie können das in der repo here sehen. Wenn Sie es in <div uib-accordion-group></div> ändern, sollte das den Fehler beheben.

3

Seit 2.0.0 wurde die Verwendung der uibAccordion & uibAccordionGroup Direktive auf A (Attribut) beschränkt. Siehe code here. Sie sollten als uib-accordion, uib-accordion-group als Attribut-Direktive & usw. verwendet werden.

Ich würde sagen, wann immer Sie eine der Bibliotheken auf die neueste Version aktualisieren wollten, finden Sie in ihrem change logs auf ihrem Github Repo. Damit müssen Sie nicht fragen, was mit Ihrem aktuellen Update falsch läuft.

+0

irgendeinen Grund hinter downvote? –