AngularJS UiBoostrap手风琴。无法找到指令'uibAccordionGroup'所需的控制器'uibAccordion'

问题描述:

我正在使用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

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

其实错误给你一个提示

控制器“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