有没有办法在每次打开时填充angular-ui-bootstrap下拉切换?

时间:2014-04-28 14:52:20

标签: angularjs angular-ui angular-ui-bootstrap

我想做一个像Facebook那样用于通知的下拉式切换。

每次打开时,我都需要在下拉切换中填充通知列表,使用$ http或$ resource。

我无法找到任何要观看的事件或变量。文档在这里:http://angular-ui.github.io/bootstrap/#/dropdownToggle

我唯一发现的是css课程" open"在打开/关闭时从下拉列表中添加/删除。我可以看到,但感觉就像一个丑陋的黑客。

有更好的方法吗? 感谢。

1 个答案:

答案 0 :(得分:1)

如果您使用当前版本的angular-ui' dropdown.jscommit 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