0

Я пытаюсь понять, как закрыть группу аккордеона с помощью кнопки внутри группы .. Кажется, что это должно быть легко .. но выглядит как нечто, сфера которого определяется только внутри группы и недоступны в контроллере? в фрагменте кода ниже первой кнопки я хотел бы закрыть группу аккордеона. Вторая кнопка работает.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

Чтобы получить доступ к статусу аккордеона группы через сферу вашего контроллера, что вам нужно сделать что-то вроде этого:

  1. Move ng-controller="testCtrl" к <body> элементу

  2. Определение статуса явно СБН вашего контроллера ОП:

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

+0

в моей производственной заявке контроллер определяется в определении состояния .. Множество других функций контроллера работает нормально. – Mason

+0

hmm! что изменение в plunkr действительно создает результат, который я искал! Я думаю, мне нужно выяснить, как включить использование модели контроллера .state router, которую я использую. – Mason

+0

хорошо. Не уверен, что я изменил, чтобы заставить его работать. Вышеприведенный ответ, должно быть, привел меня туда как-то. все работает сейчас .. Спасибо. – Mason