如何关闭ub -手风琴从内部与一个按钮点击
How to close uib-accordion from inside with a button click
我想通过单击按钮从内部关闭手风琴。我试图将isOpen
设置为false,但它不起作用。有办法关闭它的按钮点击吗?谢谢你。
Plunker here: https://plnkr.co/edit/3xMnWRPOoEHPmguaQxd0?p=preview
<div uib-accordion-group is-open="isOpen" class="panel-default" heading="{{group.title}}" ng-repeat="group in groups">
{{group.content}}
<button ng-click="close()">close this</button>
</div>
$scope.groups = [
{
title: 'Dynamic Group Header - 1',
content: 'Dynamic Group Body - 1'
},
{
title: 'Dynamic Group Header - 2',
content: 'Dynamic Group Body - 2'
}
];
$scope.isOpen = false;
$scope.close = function(){
$scope.isOpen = false;
}
我把isOpen放到集合中,让每个accordian药丸都有单独的切换(使每个药丸单独切换),它工作了,检查下面的代码:
控制器:
$scope.groups = [
{
title: 'Dynamic Group Header - 1',
content: 'Dynamic Group Body - 1',
isOpen: false
},
{
title: 'Dynamic Group Header - 2',
content: 'Dynamic Group Body - 2',
isOpen: false
}
];
$scope.items = ['Item 1', 'Item 2', 'Item 3'];
$scope.addItem = function() {
var newItemNo = $scope.items.length + 1;
$scope.items.push('Item ' + newItemNo);
};
$scope.close = function(group){
group.isOpen = false;
};
视图:
<div uib-accordion-group is-open="group.isOpen" class="panel-default" heading="{{group.title}}" ng-repeat="group in groups">
{{group.content}}
<button ng-click="close(group)">close this</button>
</div>
我修改了你的plunker:https://plnkr.co/edit/pBT0fbNJtQhgc5kZlLbO?p=preview
您可以在与ng-repeat
循环时使用ng-init
来分配新的属性isOpen
。更新Plunker代码。
在不添加控制器属性的情况下更改模板:
<div uib-accordion-group ng-init="group.isOpen=false" is-open="group.isOpen" class="panel-default" heading="{{group.title}}" ng-repeat="group in groups">
{{group.content}}
<button ng-click="group.isOpen=false">close this</button>
</div>
编辑:如果你不想改变现有的对象,那么你可以有一个数组isOpen
来保持手风琴组的打开状态。<<strong>恰好代码/strong>。
<uib-accordion close-others="oneAtATime" ng-init="isOpen=[]">
<div uib-accordion-group ng-init="isOpen[$index]=false" is-open="isOpen[$index]" class="panel-default" heading="{{group.title}}" ng-repeat="group in groups">
{{group.content}}
<button ng-click="isOpen[$index]=false">close this</button>
</div>
</uib-accordion>
在显示手风琴时必须将$scope.isOpen
设置为true
,然后$scope.isOpen = false
将关闭手风琴。
编辑:这是活塞https://plnkr.co/edit/RbbbwGaqGq8gG0JYseYw?p=preview
我可以通过稍微改变@MrNobody解决方案来实现我所需要的。https://plnkr.co/edit/cYb5jIi3LBslUDO8xfg4?p=preview
视图:
<uib-accordion close-others="true">
<div uib-accordion-group is-open="isOpen[$index]" class="panel-default" heading="{{group.title}}" ng-repeat="group in groups">
{{group.content}}
<button ng-click="close($index)">close this</button>
</div>
</uib-accordion>
<button ng-click="closeFromOutside()">close from outside</button>
控制器:
$scope.isOpen = [];
$scope.groups = [
{
title: 'Dynamic Group Header - 1',
content: 'Dynamic Group Body - 1'
},
{
title: 'Dynamic Group Header - 2',
content: 'Dynamic Group Body - 2'
}
];
$scope.close = function(index){
$scope.isOpen[index] = false;
}
$scope.closeFromOutside = function(){
$scope.isOpen = [];
}
相关文章:
- 禁用旋转木马中的下一个按钮和上一个按钮
- 如何在用户返回和上一个按钮时刷新下拉列表
- 简单的垂直上一个和下一个按钮代码点击上下移动jQuery
- 如何使用一个按钮编辑和保存使用Javascript
- 在单击下一个按钮之前,在JavaScript代码中添加5秒的延迟
- 正如我所能做的引导提醒,按下一个按钮可以更改语言
- 当我的所有 Ng-from 都有效时启用一个按钮
- 一个按钮,点击后会生成一个新的文本框?-Javascript
- 我想在我的准备列表项上创建一个按钮
- JavaScript幻灯片显示,每个幻灯片的下一个按钮都有不同的位置
- 当我单击下一个或上一个按钮时,datatable显示旧值
- 制作一个按钮倒计时计时器,该计时器将在5分钟后永久禁用,即使在页面刷新时也应保持禁用状态
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- Jquery:如果选中了另一个按钮,则为未选中按钮
- 使文本在它之后再次可见'It’s被一个按钮隐藏了
- 传递来自<输入类型=“;文件“;id=“;文件“/>尽管还有一个按钮点击
- 为缩略图库和较大图像库添加下一个和上一个按钮
- 当滑块只有一个图像时,如何禁用下一个/上一个按钮
- 图像缩略图库中的“下一个”和“上一个”按钮中的“问题”
- 点击一个按钮,有没有一种方法可以检查Div内部的图像