我有一个表,其中有许多使用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>

在我的 Controller 中,我有这个:
    $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,则必须仅更改isOpenitem属性。

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

<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;
}

10-06 12:37