【问题标题】:Angular UI Accordion: Restrict expanding to button click in headingAngular UI Accordion:限制扩展为标题中的按钮单击
【发布时间】:2026-02-01 16:55:02
【问题描述】:

我的手风琴中有一个<accordion-heading> 标记,里面有几个控件(输入、按钮等),但我只希望手风琴在单击一个特定按钮时展开。没有其他东西应该触发展开/折叠。似乎没有办法做到这一点。

我试过了:

在我的按钮的ng-click 中将is-open 设置为false 并将其设置为true。不起作用,因为单击 accordion-heading 内的任意位置会切换此布尔值。

is-disabled 设置为true,然后在单击按钮时将其设置为false。也不起作用,手风琴一直处于禁用状态

只用<accordion-heading> 标签包裹我的按钮。这会导致我标题中的其余标记成为“展开/折叠”细节的一部分。

【问题讨论】:

    标签: angular-ui angular-ui-bootstrap


    【解决方案1】:

    我想出了以下解决方案:

    在控制器$scope.toggleOpen = false;

    在您看来is-open == toggleOpen 并在特定按钮上添加ng-click="$parent.toggleOpen = !$parent.toggleOpen"

    示例:http://plnkr.co/edit/wByMeIM3UwHyxyIAcVWB?p=preview

    希望这会有所帮助。

    【讨论】:

    • 或者,您可以将:"ng-click" => "$event.stopPropagation()" 放在您不想激活手风琴的每个标签上
    • 感谢您的帮助,这正是我所需要的,但由于某种原因,这种方法在我正在使用的版本 Angular 1.3.11 中不起作用:plnkr.co/edit/Vkei6uBHjlcZA6NpWkOq?p=preview跨度>
    • 确保在标题中的其他元素上设置了 ng-click="$event.stopPropagation()" ,否则单击将切换手风琴组。 +1 到 miahabdu,$parent。 正是我需要的!