2

Angular UI Bootstrap ポップオーバー ( http://angular-ui.github.io/bootstrap/#/popover ) を使用しており、開いたときに実行するコールバック関数と閉じたときに実行するコールバック関数を指定したいと考えています。私の使用例は、ポップオーバーを使用してデータのグリッドのフィルターを含めることです。開いたときにいくつかのリモート フィルタリング オプションを読み込み、ポップオーバーが閉じているときにのみ選択したフィルターを適用したいと思います。

ドキュメントはいくつかの基本的なオプションのみをサポートしているように見えますが、コールバックのサポートは示されていません。ソースコードにも何も表示されません。間隔関数を設定して、ポップオーバーが DOM に表示されているかどうかを定期的にチェックする唯一のオプションはありますか?

同じ結果を達成するためにAngular Strapのポップオーバーも検討していますが、そこにコールバックを設定するオプションが見つからないようです。

4

4 に答える 4

5

Koni と user2453461 の回答は、イベントを発行するtooltip.jspopover.jsを利用しているため、機能しなくなったようです。次のことができるはずです。

$scope.$on('tooltip.show.before', function() {
    console.log("show before");
 });

$scope.$on('tooltip.show', function() {
    console.log("show");
 });


$scope.$on('tooltip.hide.before', function() {
  console.log("hide before");
});

$scope.$on('tooltip.hide', function() {
  console.log("hide");
});

ただし、構文はバージョンごとに変わるように見えるため、これがどれほど良いアイデアかはわかりません。

于 2014-06-17T15:19:14.820 に答える
0

ポップオーバーは "inherits from"$tooltipであり、$emitsatooltip.hide.beforetooltip.hideイベントです。ただし、これは$emiting であり$broadcasting ではないため、ポップオーバーのスコープ (およびその子 (ただし、その子は存在しない可能性が高い) のみ) のみがイベントにアクセスできます。

私のコード (coffeescript) では、次のようになります。

.directive 'ngPopoverParent', ($popover) ->

  link: (scope, element, attrs) ->

    popover = $popover element,
      'title': attrs.title
      'content': attrs.content
      'animation': attrs.animation
      'trigger': 'click'

    popover.$promise.then ->
      popover.$scope.$on 'tooltip.hide', ->
        console.log('tooltip hidden!')

関連ソース: https://github.com/mgcrea/angular-strap/blob/08167f7d5f52424b0f6fe40f3a053e134f550472/src/tooltip/tooltip.js

于 2014-05-01T17:08:00.353 に答える