angular ui bootstrap 以编程方式打开弹出窗口

angular ui bootstrap popover open programmatically

我正在尝试通过从控制器动态地将 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>

现在,这不起作用。还有其他解决方法吗?

你可以在 popover-is-open 属性中使用一些布尔标志而不是像 task.popoverIsOpen 这样的东西,并且可以将它设置为 truefalse 到 open/close 弹出一些东西喜欢

 <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