【发布时间】:2016-06-25 18:04:24
【问题描述】:
我正在尝试制作一个简单的手风琴,顶部有两个按钮:一个按钮可以打开每个面板,一个按钮可以折叠它们。
我正在尝试使用 jQuery 的 prop 方法来更改每个 uib-accordion 元素上的 is-open 属性,但是当我单击任一按钮时都没有任何反应。
<div ng-controller="AccordionController">
<p>
<button type="button" class="btn btn-default btn-sm" ng-click="openAll()">Open All</button>
<button type="button" class="btn btn-default btn-sm" ng-click="collapseAll()">Collapse All</button>
</p>
<uib-accordion close-others="false">
<uib-accordion-group class="accordionGroup" ng-repeat="xmlResult in xmlResults" is-open="false">
<uib-accordion-heading>
//heading...
</uib-accordion-heading>
//content...
</uib-accordion-group>
</uib-accordion>
</div>
这是我的控制器
angular.module("ResultsTreeViewer").controller("AccordionController", function ($scope) {
$scope.openAll = function () {
$(".accordionGroup").prop("is-open", true);
};
$scope.collapseAll = function () {
$(".accordionGroup").prop("is-open", false);
}
});
我喜欢只有 Angular 的解决方案,但这不是必需的。我只是想让它工作。
【问题讨论】:
-
is-open是一个attribute and not a property。 -
@Stryner 使用
attr也不起作用。你建议我用什么? -
检查元素时,it works for me.
-
@Stryner 我看到它更新了 is-open 属性,但它没有打开或关闭任何手风琴。我想这个问题的答案超出了这个问题的范围。
标签: jquery angularjs accordion angular-ui-bootstrap angular-ui