2016-11-21 51 views
1

我正在使用angular 2 bootstrap 4模塊。ng-bootstrap彈出窗口不會關閉,而是會重新定位

我想用yes和no按鈕來顯示一個popover元素來刪除一些東西。

當我點擊no按鈕彈出窗口應該關閉。

這並不代替發生的酥料餅的重新定位略低,好像它被重新初始化...

我不知道發生了什麼。

任何人都可以幫忙嗎?

<button[ngbPopover]="popContent" popoverTitle="You really wanna delete this item?">Delete</button> 

<template #popContent> 
    <div class="btn-group"> 
     <button (click)="delete(s.id)">Yes</button> 
     <button (click)="popContent.close()">No</button> 
    </div> 
</template> 

回答

2

你有popover元素,這將使酥料餅上手動事件打開與manual值指定triggers屬性。默認觸發設置爲click

標記

<button [ngbPopover]="popContent" 
    triggers="manual" 
    #p="ngbPopover" 
    (click)="p.toggle()" 
    popoverTitle="You really wanna delete item?"> 
    Delete 
</button> 

<template #popContent> 
    <div class="btn-group"> 
     <button (click)="delete(s.id)">Yes</button> 
     <button (click)="p.close()">No</button> 
    </div> 
</template> 

Demo Plunkr

+0

我那個觸發器= 「手動」 和(點擊)= 「p.toggle()」 #p值= 「ngbPopover」[ngbPopover] =「popContent 「現在」刪除「按鈕切換,但」否「按鈕不會關閉彈出窗口!雖然當地的參考似乎是正確的。在控制檯中單擊「否」按鈕時不會出現錯誤。這是一個糟糕的API ......它可能根本不可能從模板標籤中關閉彈出窗口?我在這裏找不到任何這樣的用例:https://ng-bootstrap.github.io/#/components/popover – Elisabeth

+0

請嘗試'p.close'。我昨天做了這個工作 –

+0

不行!我做p.close()。如果close是一個函數,p.close是沒有意義的。看來我無法從模板#popContent中引用popover實例。我試過(click)=「p.close()」和(click)=「popContent.close()」兩者都不行。我現在得到錯誤:EXCEPTION:self.parent._TemplateRef_56_4.close不是函數 – Elisabeth

相關問題