【发布时间】:2015-07-29 04:55:31
【问题描述】:
在 Angular UI 中有没有一种方法可以在手风琴中加入手风琴?我希望在选择一个项目之前全部关闭顶级列表,然后打开手风琴以显示另一个也将打开和关闭的手风琴列表。
在我当前的实现中,当我选择内部列表项时,两个手风琴都会被触发,而内部的手风琴则关闭。他们不是在自己的 $scope 中吗?
这个问题类似,但是对于 jQuery:accordion within accordion collapses parent accordion
<accordion>
<accordion-group ng-repeat="folder in folders | orderBy:'name' " ng-click="select_folder(folder)">
<accordion-heading>
{{ folder.name }}
</accordion-heading>
<accordion>
<accordion-group ng-repeat="file in folder.files">
<accordion-heading>
{{ file.name }}
</accordion-heading>
{{ file.info }}
</accordion-group>
</accordion>
</accordion-group>
</accordion>
【问题讨论】:
-
这听起来可能很愚蠢,但请尝试将
ng-if="true"添加到内部accordion-group。ng-if将强制一个新的隔离范围(这是一个 hacky 的副作用)。这不是一个解决方案,但如果它有效,它就是问题的线索,然后可能是一个好的解决方案。 -
另一个可能适合您但不完全符合您要求的选项是将每个手风琴上的
close-others设置为 false。 -
更新:我很确定这与范围无关。 Accordions 将其手风琴组数组存储在 AccordionController 中声明的局部变量中。
-
那么听起来可以嵌套手风琴列表。
-
似乎应该是可能的。我不知道为什么它不起作用。我查看了 github 上的手风琴代码,没有任何一个明确的解释。如果你创建一个 Plunkr,我会进一步研究它。我也很好奇。