表格中的角度 UI 弹出框(ng 重复).使用弹出框是打开的,如何防止所有弹出框打开

Angular UI popover in table (ng-repeat). Using popover-is-open, how can I prevent all popovers to open?

本文关键字:何防止 重复 UI 表格 ng      更新时间:2023-09-26

我有一个表格,里面有很多弹出框,使用 ng-repeat。代码如下所示:

     <td>
       <button uib-popover-template="dynamicPopover.templateUrl" type="button" class="btn btn-primary" popover-placement="left" popover-is-open="myPopover.isOpen" ng-click="myPopover.open()">Examples</button>
     </td>

在我的控制器中,我有这个:

    $scope.myPopover = {
    isOpen: false,
    open: function open() {
        $scope.myPopover.isOpen = true;
    },
    close: function close() {
        $scope.myPopover.isOpen = false;
    }
};

当我现在按下"示例"按钮时,我打开了表格中的所有弹出窗口。我怎样才能预先打开/关闭附加到我按下的按钮的弹出窗口?

假设您的ng-repeat item in items track by $index循环,您必须更改 isOpen 属性只是为了您的item

应该是这样的(我没有时间测试它)。

<button uib-popover-template="dynamicPopover.templateUrl" type="button" class="btn btn-primary" popover-placement="left" popover-is-open="item.isOpen" ng-click="openPopover($index)">Examples</button>

然后

function openPopover(i){
  $scope.items[i].isOpen = true;
}
如果我

说得对,请尝试将您的表格放在表单标签中并提供此代码

<form ng-submit="$event.preventDefault()">

这是因为您将popover-is-open=""绑定到所有弹出窗口的同一属性。

尝试类似popover-is-open="isPopoverOpen" ng-click="isPopoverOpen = !isPopoverOpen"

在那里,您将为每个范围/每行创建一个变量isPopoverOpen