AngularJS Accordion 全部展开 全部折叠

标签 angularjs angularjs-directive angularjs-scope angularjs-ng-repeat angularjs-ng-click

我试图让 Accordion 通过指令 ng-click 正确切换。如果我打开第一项,如何让它展开所有 Accordion ?第二项和第三项将继续扩展和折叠,但第一项保持停滞。

Plunker

最佳答案

或者,您可以调整按钮,以便它们在子项中循环。

html:

<div ng-controller="AccordionDemo">
  <div >
      <div class="stuff_in_the_middle" >
          <div ng-repeat="m in results" ng-click="m.open = !m.open" style="margin-bottom:20px">
            <div heading="{{m.label}}" is-open="m.open" style="background-color:#d2d2d2; cursor:pointer" > 
            {{m.label}}
            </div>
            <div ng-show="m.open" style="padding:10px">
              contents
            </div>
          </div>
          <span class="btn btn-default"  ng-click="toggle(false)">Collapse All</span>
          <span class="btn btn-default"  ng-click="toggle(true)">Expand All</span>
      </div>
      <hr />
  </div>
</div>

JS:

var module = angular.module('plunker', []);

module.controller('AccordionDemo', ['$scope', 
  function ($scope) {
    $scope.results = [
      {label: 'Item 1', open: false},
      {label: 'Item 2', open: false},
      {label: 'Item 3', open: false}
    ];

    $scope.toggle = function(state) {
      $scope.results.forEach(function(e) {
        e.open = state;
      });
    }
  }
]);

在这里查看它的工作情况:http://plnkr.co/edit/T6iv7mSoat9SQBwSIFJP

关于AngularJS Accordion 全部展开 全部折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437187/

相关文章:

javascript - 为数组中每个未选择的项目动态生成选择菜单选项

AngularJS - 我们应该将 $http 方法包装在服务中吗

javascript - Keycloak 导致 IE 无限循环

javascript - 从指令访问 AngularJS 范围

angularjs - Angular 指令 compile() 函数如何访问隔离的作用域?

javascript - 如何使用 AngularJS 显示来自 Elasticsearch Phrase Suggester 的搜索建议

javascript - 将 Controller 代码转换为可重用指令

angularjs - 通过 AngularJS 中的模型绑定(bind)更改 Kendo 图表类型

css - 在 AngularJS 指令中调整 div 的大小?

javascript - Angularjs指令点击元素