将ng-click事件添加到angular ui手风琴中
Add ng-click event to angular-ui accordion
我正在使用angular ui,并且已经开始使用手风琴。
当有人打开或关闭手风琴组时,我需要启动ng-click
活动。
我做了一些研究,发现了这个线索:angular ui问题
它链接到一个plunker,它显示了一个对我的用例不满意的解决方案。
以下是解决方案html:
<accordion>
<accordion-group>
<accordion-heading>
<span ng-click="foo()">Try clicking me!</span>
</accordion-heading>
Some Body 3
</accordion-group>
</accordion>
但是只有当您单击span text时才会触发ng-click事件。如果您在文本之外单击,手风琴仍然会打开或关闭,而不会发生任何单击事件。
为了解决这个问题,我尝试使跨度宽度&高度100%,设置显示:块。我也考虑过完全去掉填充物,但我想知道是否有比破解更好的方法
有人知道如何将点击事件附加到整个手风琴小组中吗?或者如何使跨度充满整个组?
我的全部代码:
<accordion close-others="true">
<accordion-group ng-repeat="question in level">
<accordion-heading style="padding: 0">
<div style="display: block; margin: 0px" ng-click="set_question(question.title)">{{ question.title }}</div>
<i class="icon-check" ng-show="has_solved_all"></i>
</accordion-heading>
<span ng-bind-html-unsafe="question.content"></span>
</accordion-group>
</accordion>
<br>
Question Open: {{ question_open }}
为什么需要ng-click
特定的解决方案?有一个is-open
属性,您可以查看它,它在手风琴打开/关闭时触发。
如果您正在使用Angular的新版本,一个名为isOpenChange
的事件,请处理它。
<accordion>
<accordion-group (isOpenChange)="foo()">
<button class="btn btn-link btn-block clearfix" accordion-heading type="button">
<div class="pull-left float-left">Header Title</div>
</button>
<div>Some Body 3</div>
</accordion-group>
</accordion>
在手风琴标题下创建一个顶级div或移动
<i class="icon-check" ng-show="has_solved_all"></i>
div元素内部-
<div style="display: block; margin: 0px"
这应该很神奇。以下适用于我-
<accordion-group ng-repeat="group in groups" >
<accordion-heading>
<div ng-click="opened(group, $index)">
<span>{{group.title}}</span>
</div>
</accordion-heading>
{{group.content}}
</accordion-group>
在plunker中修改和验证http://plnkr.co/edit/B3LC1X?p=preview控制台日志。我知道这个问题很老,但其他人可以用这个答案。
若您想添加另一个打开事件的点击。我建议在标签中添加以下指令:
myApp.directive('functionClick',function(){
return{
restrict: 'E',
terminal: true,
controller: 'NameOfController',
templateUrl: "templateFunctionClick.html",
link: function($scope, $element, $attrs, $ctrl){
}
}
});
<accordion-group is-open="status.open">
<accordion-heading >
{{headerName}}
<function-click></function-click>
</accordion-heading>
</accordion-group>
其中模板FunctionClick.html:
<a ng-click="$event.stopPropagation();clickMeFunction()" ><span>Click Me!</span> </a>
请确保添加$event.stopPropagation();为了不同时调用toggleOpen()。
相关文章:
- UI - 手风琴在 empty() 和 append() 之后不起作用
- 语义 UI 手风琴获取打开事件中打开的项目的索引
- 寻址jquery ui手风琴子类
- 使jquery ui手风琴水平
- jQuery UI手风琴无法在本地目录的Safari中工作
- JQuery UI(手风琴),在初始化时打开活动选项卡
- 角度 - 如何在角度 UI 手风琴上正确应用 is-open 属性
- 重新定位 Jquery UI 手风琴的标题图标
- 嵌套的 jQuery UI 手风琴不起作用
- 在 jQuery UI 手风琴中加载 Google 地图
- 将ng-click事件添加到angular ui手风琴中
- jQuery UI手风琴打开后加载jQuery Ajax
- 在页面加载后打开jQuery UI's手风琴中的所有部分
- jQuery UI手风琴不能与Javascript一起工作
- Jquery UI手风琴选择的标题
- 当数据刷新时,jQuery UI手风琴不工作
- 当在可排序列表中拖动时,jQuery UI手风琴在IE7中是不可见的
- 找不到Angular UI手风琴指令
- 为什么jQuery UI手风琴打开/关闭动画如此不稳定?
- Jquery UI手风琴禁用点击