Angular UI table 中的弹出窗口(ng-repeat)。使用 popover-is-open,如何防止所有弹出窗口打开?
Angular UI popover in table (ng-repeat). Using popover-is-open, how can I prevent all popovers to open?
我有一个 table,其中有很多弹出窗口,使用 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;
}
};
当我现在按下 "Examples" 按钮时,我会打开 table 中的所有弹出窗口。我怎样才能防止这种情况发生并且只有 open/close 弹出窗口附加到我按下的按钮?
如果我没猜错,请尝试将 table 放入表单标签并提供此代码
<form ng-submit="$event.preventDefault()">
这是因为您将 popover-is-open=""
绑定到所有弹出框的相同 属性。
试试 popover-is-open="isPopoverOpen" ng-click="isPopoverOpen = !isPopoverOpen"
在那里,您将为每 scope/per 行创建一个变量 isPopoverOpen
。
假设您的 ng-repeat
正在循环 item in items track by $index
,您必须为 item
.
更改 isOpen
属性
应该是这样的(还没来得及测试)
<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;
}
我有一个 table,其中有很多弹出窗口,使用 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;
}
};
当我现在按下 "Examples" 按钮时,我会打开 table 中的所有弹出窗口。我怎样才能防止这种情况发生并且只有 open/close 弹出窗口附加到我按下的按钮?
如果我没猜错,请尝试将 table 放入表单标签并提供此代码
<form ng-submit="$event.preventDefault()">
这是因为您将 popover-is-open=""
绑定到所有弹出框的相同 属性。
试试 popover-is-open="isPopoverOpen" ng-click="isPopoverOpen = !isPopoverOpen"
在那里,您将为每 scope/per 行创建一个变量 isPopoverOpen
。
假设您的 ng-repeat
正在循环 item in items track by $index
,您必须为 item
.
isOpen
属性
应该是这样的(还没来得及测试)
<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;
}