【问题标题】:angular ui bootstrap popover open programmatically角度 ui 引导弹出框以编程方式打开
【发布时间】:2017-11-29 03:15:36
【问题描述】:

我正在尝试通过将 popover-is-open 属性从控制器动态设置为 true 来动态打开弹出框,如下所示:

    var el = angular.element(target.id); //popover attached to this element
    el.attr('popover-is-open',true) //setting attribute to true
    $compile(el.contents())($scope) //recompiling
    $scope.$digest();//running digest

这里是html

<div id="taskcard-{{task.externalId}}" 
     popover-append-to-body="true" 
     popover-trigger="'none'" 
     popover-is-open="false"
     uib-popover-template="templateurl" 
     popover-title="testing">
          POPOVERS
</div>

现在,这行不通。有没有其他办法解决这个问题?

【问题讨论】:

  • 能否请您在此处发布包括html 在内的完整代码
  • @jitender 检查上面

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


【解决方案1】:

您可以在popover-is-open 属性中使用一些布尔标志而不是task.popoverIsOpen 之类的东西,并且可以将其设置为truefalse 以打开/关闭类似的弹出窗口

 <div id="taskcard-{{task.externalId}}" 
     popover-append-to-body="true" 
     popover-trigger="'none'" 
     popover-is-open="task.popoverIsOpen"
     uib-popover-template="dynamicPopover.templateUrl" 
     popover-title="testing">
          POPOVERS
</div>

在需要时将popoverIsOpen 设置为true

task.popoverIsOpen=true;

Working demo

【讨论】:

  • 无法使用。我有100个popovers!不能为每个单独的标志。如果我只保留一个标志,所有弹出窗口将一起打开和关闭:)
  • 你的意思是说你在ng-repeattasks 中使用它对吧?
  • 实际上我有一个要求,一次只能打开一个弹出窗口。所以在你的 plunker 用户可以打开所有的弹出框。
  • @beNerd 查看更新plunker
  • 还有一个问题:我需要使用 ng-mouseenter 而不是 ng-click,并且应该在 mouseleave 时删除 popover。我尝试用 mouseenter 替换 ng-click,但弹出框在 mouseleave 上没有消失
猜你喜欢
  • 2016-07-26
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
相关资源
最近更新 更多