我想做一个像Facebook那样用于通知的下拉式切换。
每次打开时,我都需要在下拉切换中填充通知列表,使用$ http或$ resource。
我无法找到任何要观看的事件或变量。文档在这里:http://angular-ui.github.io/bootstrap/#/dropdownToggle
我唯一发现的是css课程" open"在打开/关闭时从下拉列表中添加/删除。我可以看到,但感觉就像一个丑陋的黑客。
有更好的方法吗? 感谢。
答案 0 :(得分:1)
如果您使用当前版本的angular-ui' dropdown.js
(commit 73c2dea548),那么在GitHub存储库中,他们已经公开了is-toggled
属性,您可以用于找出打开下拉列表的时间。似乎它不在0.10版本的angular-ui bootstrap中,所以你必须自己制作自定义版本。
虽然它确实有一个is-toggled函数,但是有一个小错误,它在第一次打开它时不会被触发。我已经创建了一个修复程序,它将在plunkr中,我将在稍后链接。我所做的更改位于第96行,将其从angular.isDefined(wasOpen)
更改为angular.isDefined(isOpen)
。
获得此文件后,您可以向is-toggled
类的元素添加dropdown
属性。
HTML:
<li class="dropdown" on-toggle="toggled(open)">
<a class="dropdown-toggle">
Click me for a dropdown, yo!
</a>
<ul class="dropdown-menu">
<li ng-repeat="choice in items">
<a>{{choice}}</a>
</li>
</ul>
</li>
在您的控制器中:
$scope.toggled = function(open) {
var now = new Date();
$log.info('i was opened...',open,now);
if (open) {
$scope.items.push("last opened at " + now);
}
};
这是一个工作的掠夺者:http://plnkr.co/edit/rdVC8vfvbdtsnkk7bWZn?p=preview