【问题标题】:Angularjs Control the expand and collapse of an acordionAngularjs 控制手风琴的展开和折叠
【发布时间】:2014-01-23 09:34:55
【问题描述】:

我试图了解 ui.bootstrap 手风琴在 angularjs 中的工作原理。在我使用的情况下,我有三个手风琴,其中只有第一个可以打开。当用户单击其标题时,其余部分不应打开,直到从上一个手风琴中选择了一个选项。

现在,我正在试验一个控制器,当用户单击第二个和第三个手风琴时,它会显示一条错误消息,然后关闭它们。这是我的 Plunker 和我的代码:

http://plnkr.co/edit/rSg6Az?p=preview

错误消息的一部分可以正常工作,但是当我单击它时,我无法得知所选的手风琴已关闭。

有什么想法吗?

问候:

阿德里安·费雷雷斯

【问题讨论】:

    标签: angularjs angular-ui-bootstrap


    【解决方案1】:

    首先,我感谢您的回答,并为我延迟回答而道歉。我没有测试你的解决方案,因为我发现了两个我比你告诉我的更喜欢的解决方案。第一个是 Vanya Dineva 在 Angular 的官方邮件组中给出的:

    您可以尝试以下几件事:

    1. 请注意,accordionGroup 指令在其模板中使用了折叠指令 (https://github.com/angular-ui/bootstrap/blob/master/template/accordion/accordion->group.html) 您可以修改而不是使用 collapse="!isOpen" 您可以将 isOpen 替换为一个新变量,您可以将其设置为 false 直到满足您的条件

    2. 注意手风琴组模板 (https://github.com/angular-ui/bootstrap/blob/master/template/accordion/accordion-group.html) 中的 ng-click="toggleOpen()"。尝试创建自定义函数,例如ng-click="openIfConditionMet()" 并将您的逻辑放入函数中

    第二个是我自己发现的。当用户尝试打开手风琴时,我添加了一个模式窗口来显示错误消息。在关闭窗口的函数中,我输入了关闭手风琴的代码:

    http://plnkr.co/edit/rSg6Az?p=preview

    【讨论】:

      【解决方案2】:

      您可以使用ng-class,并将其绑定到之前每个手风琴中的选项值。

      【讨论】:

        【解决方案3】:

        您可能可以将您的作业转换为$timeout,但master 中已经有对is-disabled 的支持。 https://github.com/angular-ui/bootstrap/commit/9c43ae7c0a66ff454c97296122d8f82c89ac4d5e

        您可以自己构建它或等待下一个版本:-)

        【讨论】:

          猜你喜欢
          • 2012-09-23
          • 2021-11-10
          • 1970-01-01
          • 1970-01-01
          • 2019-05-31
          • 1970-01-01
          • 2015-11-29
          • 2020-01-25
          • 2016-10-29
          相关资源
          最近更新 更多