我正在尝试在ngRepeat中嵌入一些可折叠面板。 这就是我所拥有的:
<div class="panel panel-default" ng-repeat="element in elements">
<div class="panel-heading">
{{element.name}}
<button value="Collapse" ng-click="element.isCollapsed != element.isCollapsed"></button>
</div>
<div class="panel-body" collapse="element.isCollapsed">
Content
</div>
</div>
现在,当我点击按钮时,折叠不起作用。
从文档中我了解到,转发器为每个element
创建了一个范围。
面板体的属性collapse
应该具有相同的范围,对吧?
似乎scope.$watch
指令中的collapse
无法正常工作。
或者也许我做错了什么?
由于
答案 0 :(得分:5)
请检查更新的小提琴:http://jsfiddle.net/nZ9Nx/9/
我已经创建了应用程序并在其中注入了ui-bootstrap以使崩溃正常工作。
angular.module('test', ['ui.bootstrap']);
答案 1 :(得分:3)
问题是
<div class="panel-heading" toggle target="collapseOne">
在示例中它是硬编码的。替换为......
<div class="panel-heading" toggle target="collapse{{ $index + 1 }}">
同时更新此标记
<div id="collapse{{ $index + 1 }}" toggleable active-class="in" exclusion-group="accordion1" default="active" class="panel-collapse collapse">
这是一个完整的例子
<div ng-repeat="item in awesomeThings">
<div class="panel panel-default">
<div class="panel-heading" toggle target="collapse{{ $index + 1 }}">
<h4 class="panel-title">
{{ item }}
</h4>
</div>
<div id="collapse{{ $index + 1 }}" toggleable active-class="in" exclusion-group="accordion1" default="active" class="panel-collapse collapse">
<div class="panel-body">
<!-- ... -->
</div>
</div>
</div>
</div>