表格中的Angular UI popover(ng-repeat)。使用popover-is-open,如何防止所有弹出窗口打开?

时间:2016-03-15 11:12:11

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

我有一张桌子,里面有很多弹出窗口,使用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;
    }
};

当我现在按下&#34;例子&#34;按钮我打开表中的所有弹出窗口。我怎样才能打开它,只打开/关闭我按下的按钮上的弹出框?

3 个答案:

答案 0 :(得分:3)

假设您的ng-repeat正在循环item in items track by $index,您必须更改isOpen的{​​{1}}属性。

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

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>

答案 1 :(得分:0)

如果我找到你正确的方法,请尝试将表格放在表格标签中并提供此代码

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

答案 2 :(得分:0)

这是因为你将popover-is-open=""绑定到所有popovers的同一属性。

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

之类的内容

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