2017-05-05 33 views
1

我正在使用AngularJS應用程序。AngularJS UiBoostrap手風琴。無法找到指令'uibAccordionGroup'所需的控制器'uibAccordion'

在我的index.html,以我的身體標記結束時,我聲明這一點:

<script src="bower_components/angular/angular.min.js"></script> 
<script src="bower_components/angular-bootstrap/ui-bootstrap.min.js"></script> 
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script> 

我包括我的angular.module

而且在我的HTML 'ui.bootstrap',我嘗試使用UIB-手風琴

<div id="Help" uib-accordion-group is-open="main.openHelp"> 
    <uib-accordion-heading> 
     <span > 
      Help 
     </span>    
     <span> 
      <i class="pull-right fa" ng-click="main.openHelp = !main.openHelp" ng-class="{'fa-chevron-down': main.openHelp, 'fa-chevron-left': !main.openHelp}"></i>      
     </span> 
    </uib-accordion-heading> 
    <div class="row"> 
     <div> 
      Useless Content 
     </div> 
    </div> 
</div> 

這是工作的罰款,我可以打開/關閉它等等

在p問題是我有錯誤登錄: https://docs.angularjs.org/error/$compile/ctreq?p0=uibAccordion&p1=uibAccordionGroup

我不明白我該怎麼做才能解決這個問題。

順便說一句,因爲我在本頁使用了多次uib accordion,所以這個錯誤被記錄多次。 (我有不同的<div uib-accordion-group ></div>標籤)

+0

您是否添加了angular.module('myModule',['ui.bootstrap']);在你的模塊 –

+0

與我說的有什麼不同嗎?我說我包含'ui.bootstrap'在我的angular.module,這意味着我做到了: var app = angular.module('myModule',['ui.bootstrap']) 我必須包含此模塊另一個 ? –

+1

您只需要包含不需要 你可以檢查, –

回答

2

其實錯誤給你一個提示

控制器「uibAccordion」,由指令「uibAccordionGroup」要求,不能被發現!

暗示與詞required。在AngularJS中,directives can define a requirement to be included inside other directives,如果這些父指令不存在,那麼你會得到一個錯誤。

就你的情況而言,指令uibAccordionGroup需要嵌套在uibAccordion之內,而你沒有在HTML中定義它。

這是怎麼回事應該看起來像

<uib-accordion close-others="oneAtATime"> <!-- pay attention to this line --> 
    <div id="Help" uib-accordion-group is-open="main.openHelp"> 
     <uib-accordion-heading> 
     <span > 
      Help 
     </span>    
     <span> 
     <i class="pull-right fa" ng-click="main.openHelp = !main.openHelp" ng-class="{'fa-chevron-down': main.openHelp, 'fa-chevron-left': !main.openHelp}"></i>      
     </span> 
    </uib-accordion-heading> 
     <div class="row"> 
      <div> 
       Useless Content 
      </div> 
     </div> 
    </div> 
</uib-accordion> 

而且@Nair Athul是正確的,您應該包括

<script src="bower_components/angular-bootstrap/ui-bootstrap.min.js">

<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js">

不都!

+1

它的工作。但是現在標題行爲有所不同。除了打開/關閉手風琴外,我還有其他的按鈕。現在,當我點擊它時,標題中的所有內容都會使我的手風琴關閉/打開。我設法把它們放開,所以我很好 –

+0

'現在,當我點擊它時,標題中的所有內容都使我的手風琴關閉/打開。「,這實際上是預期的行爲。 https://github.com/angular-ui/bootstrap/issues/3299 – svarog

相關問題