2017-07-23 1 views
3

Ich habe mit der uib-popover gespielt und kann nicht herausfinden, wie man erkennt, wenn das Popover gezeigt wird oder geschlossen wird. Es scheint nicht, dass die Ereignisse wie "show.bs.open/hidden" für das normale Bootstrap-Popover existieren.Erkennen, wenn uib-popover geöffnet und geschlossen wird?

Gibt es eine Möglichkeit, dies zu tun, fehlt mir?

Die Anzeige des Popover selbst wird beim Klick angezeigt, aber es ist anscheinend immer nicht sichtbar, ob es offen oder geschlossen ist. Beachte, dass ich mich an den Körper anhänge.

thx

Antwort

0

Ich glaube, Sie für die popover-is-open untergeordnete_Anweisung

Aus der Dokumentation

popover-is-open (Default: false) suchen - Ob die popover zu zeigen.

Beachten Sie, dass diese untergeordnete_Anweisung

Diese Einstellung ein Beobachter gilt eine Winkel $ Uhr Hörer auf sie angewendet.

Hier ist, wie es zu benutzen

<button uib-popover="I am activated manually" 
     popover-is-open="isOpen2" 
     type="button" class="btn btn-default"> 
    Toggle popover 
</button> 

Und Sie können es initialisieren in Sie

Controller
$scope.isOpen2 = false; // or true 

Hier ist ein demo plunk

+0

Danke für die Info. Wie würde das funktionieren, wenn Sie eine unbestimmte Anzahl von Popovers auf der Seite haben (und an den Körper angehängt sind)? Du kennst das bestimmte uib-popover-Element, auf das geklickt wurde, und in meinem Fall kenne ich die spezifische classinfo, so dass ich ein bestimmtes Popup mit seinem Quellelement identifizieren kann ... kannst du haben, dassOpen2 eine Hashtabelle ist und dann Popover- is-offen für isOpen2 [einige-Kennung]? – user655489

+0

'isOpen2' ist nur eine Variable, die an den Gültigkeitsbereich gebunden ist. Sie können viele davon in einer Datenstruktur (wie einem Array) haben, die an beliebig viele Popovers bindet. 'können Sie haben, dass isOpen2 eine Hashtabelle und dann Popover-is-open zu isOpen2 [some-identifier]' ist, nicht wirklich, aber Sie können etwas ähnliches mit 'ng-repeat =" (Schlüssel, Wert) in obj "' arbeiten und dann, 'popover-is-open =" key "' – svarog

+0

Das ist interessant. Dinge benutzen bereits eine ng-Wiederholung, um eine Tabelle zu erzeugen, die andere Sachen enthält ... also wenn du ng-repeat = "foo in fooCollection" für eine Tabelle machst und ein Indikatorfeld auf foo dafür hast - wie foo .myPopoverIsOpen - dann würde foo.myPopoverIsOpen angeschaut? Ich werde es ausprobieren. – user655489

Verwandte Themen