我正在使用手风琴指令http://angular-ui.github.com/bootstrap/ http://angular-ui.github.com/bootstrap/我需要更好地控制手风琴何时打开和关闭。
更准确地说,我需要手风琴组内的一个按钮,该按钮将关闭其父手风琴并打开下一个(因此基本上模仿了如果 close-others 设置为 true 时单击下一个标题将执行的操作)。
在允许关闭手风琴并打开下一个手风琴之前,我还需要进行一些验证,并且我还需要将其连接到手风琴标题上的单击事件。
我对 Angular 还很陌生,我们目前正在将应用程序从 Backbone+JQuery 重写为 Angular。在 Backbone 版本中,我们使用 Twitter Bootstrap 手风琴,并使用 JQuery 打开和关闭它们。虽然我们仍然可以继续这样做,但我宁愿完全摆脱 JQuery DOM 操作,所以我正在寻找一个纯粹的角度解决方案。
我在验证方面尝试做的是
<accordion-group ng-click="close($event)">
在我的控制器中
event.preventDefault();
event.stopPropagation();
这显然不起作用,因为 DOM 元素被指令替换,并且永远不会添加点击处理程序。我一直在研究源代码(并发现了一些非常好的未记录的功能),但我不知道从哪里开始解决这个特定的挑战。我正在考虑分叉 Angular-ui 并尝试将此功能添加到 Accordion 指令中,但如果我可以在不修改指令的情况下实现此目的,那就更好了。
有的是is-open
属性上的accordion-group
它指向一个可绑定的表达式。通过使用此表达式,您可以以编程方式控制手风琴项目,例如:
<div ng-controller="AccordionDemoCtrl">
<accordion>
<accordion-group ng-repeat="group in groups" heading="{{group.title}}" is-open="group.open">
{{group.content}}
</accordion-group>
</accordion>
<button class="btn" ng-click="groups[0].open = !groups[0].open">Toggle first open</button>
<button class="btn" ng-click="groups[1].open = !groups[1].open">Toggle second open</button>
</div>
以及这里的工作情况:http://plnkr.co/edit/DepnVH?p=preview http://plnkr.co/edit/DepnVH?p=preview
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)