我有一个ng-repeat,它会在表格中生成项目列表, 每个项目的行中都有一个按钮,该按钮会打开一个弹出窗口(用于编辑对象)。
请勿使用引导弹出窗口的click-outside
属性,这一点很重要,因为该弹出窗口必须仅通过其内部的按钮来关闭。
因此,在具有ng-repeat的<div>
上声明弹出框的html代码中,我们有以下代码:
<div class="popoverX" popover-class="popoverCustom"
popover-append-to-body="true" popover-placement="bottom-left"
popover-is-open="vm.isEditPopoverOpen"
uib-popover-template="'Views/xxx/popTemplate.htm'">
在控制器中定义如下:
isEditPopoverOpen: boolean;
和我们要在弹出窗口中关闭的关闭函数是:
closePopover() {
this.loading = false;
this.isEditPopoverOpen= false;
}
因此,当我们在ng-repeat中仅返回单个项目时,一切工作都很好,但是情况并非如此,因此,当前,当您单击打开弹出窗口的行div
时,每个弹出窗口每行都打开。
我知道为什么会这样,因为我使用的是相同的布尔值, 但是解决方案是什么?
我需要保留此结构,因此必须仅通过按钮关闭弹出窗口,
并且我想避免在ng-repeat中循环的数组对象中添加一个新属性,例如:isOpened: boolean
,然后将其用于打开/关闭。
如果还有其他解决方案,我将很高兴听到他们的声音!
答案 0 :(得分:1)
如果您确实不想在对象上分配新属性,则可以像这样保留一个单独的打开/关闭弹出窗口数组;
GET https://www.googleapis.com/plus/v1/people/108822296317431956650?key=XXXX
,并且在您的标记中,您可以像这样在中继器中访问vm.openedPopovers = [];
;
$index