【发布时间】:2013-05-26 13:46:59
【问题描述】:
我有一个页面,其中包含 (Twitter) 引导程序。 在这个页面上,我有一个完美工作的手风琴,在那个手风琴内我有一个可折叠的 div。请看下面的代码:
<div class="accordion" id="checkListAccordion">
<div ng-repeat="item in items" class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#checkListAccordion" href="#collapse{{item.$$hashKey}}">{{item.name}}</a>
</div>
<div id="collapse{{item.$$hashKey}}" class="accordion-body collapse">
<div class="accordion-inner">
<div class="container-fluid">
<div class="row-fluid">
<div class="badges span12">
<span class="badge badge-info" data-toggle="collapse" data-target=".info{{item.$$hashKey}}"><i class="icon-info-sign icon-white"></i></span>
<div class="info{{item.$$hashKey}} collapse in">
{{item.info}}
</div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
some text
</div>
</div>
</div>
</div>
</div>
</div>
现在,当我单击信息徽章时,具有相应类的 div 将折叠打开。但是当我再次单击它时它永远不会折回。只有当我包裹在导航栏和导航栏内部时,它才会折回......但当然,我不希望那样。
有什么帮助吗?
【问题讨论】:
-
当我尝试使用硬编码类名的代码时,它似乎可以工作:请参阅bootply.com/62667。你确定你的
{{item.$$hashKey}}设置正确吗? -
奇怪...事实证明,当我移除周围的中继器(手风琴项目是在 ng-repeat 中创建的)时,一切正常。即使我对多个项目进行硬编码。我更新了 html 以说明更多内容。
-
ng-repeat 具有不同的范围,另请参阅:stackoverflow.com/questions/16854463/… 您应该使用 ng-click 事件来添加/删除 .in 类。
-
@BassJobsen 感谢您的帮助。不幸的是,我没有看到问题(我对 Angular 有点陌生)。能给我解释一下吗?
-
我会试试的。 Twitter bootstrap 使用 jQuery 进行 DOM 操作(添加或删除 .in 类)。 Angular 创建新的 DOM 元素(你的手风琴项)。 jQuery 不知道这些元素,因为它们是在其他范围(Angular)中创建的。此视频youtube.com/watch?v=bk-CC61zMZk 可能对您有所帮助。
标签: twitter-bootstrap angularjs toggle collapse