javascript - 为 Angular JS 折叠 Bootstrap DIV 设置默认打开状态?

标签 javascript jquery css angularjs twitter-bootstrap

我有一个针对 Angular JS 改编的 Bootstrap 折叠 div:

<fieldset>
  <legend data-toggle="collapse" data-target="#radios" class="data-toggle" collapse>Radio Buttons</legend>
    <div id="radios" class="panel-collapse collapse">
    <!-- add class "collapse" to start out closed -->
    <div class="panel-body">
        ...stuff...
    </div>
  </div>
</fieldset>

在面板上设置类 collapse 以使其开始关闭(如此处)或省略它以使其开始打开。

我写了这个指令来切换被点击的元素的类别,显示“打开”或“关闭”图标:

'use strict';

angular.module('designSystemApp')
  .directive('collapse', function() {
    return {
        restrict: 'A',
        link: function postLink(scope, element, attrs) {

            element.on({
                click: function(e) {
                    element.toggleClass('open');
                }
            });
        }
    }
});

它像这样工作得很好,当它开始关闭并切换打开和关闭时。

由于 BS 方法是在子对象(面板)上设置类,我不确定如何影响 Angular 触发器对象,因此更改该类会将状态/类设置为“打开”开始。

换句话说,如果我删除了 div 开始打开的类,但是 legend 没有打开的类,所以图标是“关闭的”。我试图避免设置两件事;正在寻找一种将默认设置为打开或关闭的简单方法。

最佳答案

虽然没有直接回答,但为您提供了一个可能的解决方法/解决方案来解决您的问题,我正在使用 angular-bootstrap 库为此和其他 Bootstrap 控件执行类似的任务。图书馆可以找到here

适用于您的用例的折叠插件示例:

<fieldset>
  <legend ng-click="isCollapsed = !isCollapsed">Radio Buttons</legend>
  <div id="radios" class="panel-collapse" collapse="isCollapsed">
    <div class="panel-body">
        ...stuff...
    </div>
  </div>
</fieldset>

然后在您的 Angular Directive(指令)或 Controller 中,您可以设置 isCollapsed = true 或 false,具体取决于您希望它在默认情况下是打开还是关闭。

关于javascript - 为 Angular JS 折叠 Bootstrap DIV 设置默认打开状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23617654/

相关文章:

javascript - Angular 过滤器按 $index 添加项目

javascript - 如何获取对象内部对象的键?

jquery - 无法在 jquery ui 可排序事件中的 $.each 函数中使用 $(this)

jquery - 从 jQuery 选择中删除没有 id 的元素?

javascript - 在解决 promise 之前正在呈现指令

javascript - PHP邮件函数发出电子邮件,但AJAX函数出错

javascript - 防止跳回到屏幕顶部 jQuery animate

html - 分区背景图像

css - 如何制作具有圆 Angular 和背景颜色的 Div?

css - 调整大小时背景图像消失