angular bootstrap 手风琴是开放范围

angular bootstrap accordion is-open scope

我正在尝试弄清楚如何通过组内的按钮关闭手风琴组。看起来应该很容易。但看起来范围仅在组内定义且不可用在控制器中?在第一个按钮下面的代码片段中,我想如何关闭手风琴组。第二个按钮有效。

这是一个关于我正在做的事情的简单 plunkr https://plnkr.co/edit/bghRaioszH3SZmiWxcoH?p=preview

 <uib-accordion close-others="true" ng-controller="testCtrl">
      <uib-accordion-group panel-class="panel-primary" is-open="status.isOpen">
        <uib-accordion-heading>
        Open: {{ status.isOpen }}
        <i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.isOpen, 'glyphicon-chevron-right': !status.isOpen}"></i>
        </uib-accordion-heading>
      <button class="btn btn-warning" ng-click="close()">Cancel</button>
      <button class="btn btn-warning" ng-click="status.isOpen=!status.isOpen">Cancel</button>
  </uib-accordion-group>
    </uib-accordion>

要通过控制器的作用域访问手风琴组的状态,您需要执行如下操作:

  1. ng-controller="testCtrl" 移动到 <body> 元素

  2. 在控制器范围内明确定义状态:

.controller('testCtrl', function($scope) { $scope.status = { isOpen: true } $scope.close = function(){ $scope.status.isOpen = false; }; });