我有一个表,其中有许多使用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
,则必须仅更改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;
}