Я использую директиву гармонии от http://angular-ui.github.com/bootstrap/, и мне нужно больше контролировать, когда аккордеоны открываются и закрываются.
Чтобы быть более точным, мне нужна кнопка внутри группы аккордеона, которая закроет его родительский аккордеон и откроет следующий (так что в основном имитирует, что щелчок следующего заголовка будет делать, если close-others был установлен в true). Я также должен выполнить некоторую проверку, прежде чем я смогу разрешить закрытие аккордеона, и следующий, который нужно открыть, и мне также нужно подключить это событие для кликов на заголовках аккордеона.
Я новичок в angular, и мы в настоящее время переписываем приложение из Backbone + JQuery на Angular. В Backbone-версии мы использовали Twitter-бутстрап-аккордеоны, и мы открывали и закрывали их с помощью JQuery. Хотя мы все еще можем это делать, я бы скорее избавился от манипуляций JQuery DOM, поэтому я ищу для этого чистое решение angular.
То, что я пытался сделать с точки зрения проверки,
<accordion-group ng-click="close($event)">
и в моем контроллере
event.preventDefault();
event.stopPropagation();
Это явно не работает, поскольку элемент DOM заменяется директивой, и обработчик кликов никогда не добавляется. Я перебираю исходный код (и нашел несколько очень приятных недокументированных функций), но я в недоумении, где даже начать решение этой конкретной задачи. Я рассматривал forking angular -ui и попытался добавить эту функциональность в директиву гармоник, но если я смогу добиться этого, не изменяя директивы, которая будет намного приятнее.