1

ユーザーがクリックして一部の情報の詳細を表示するリンクがあります。このクリックにより、次のような ng-dialog open イベントが発生します。

 ngDialog.open({
  template: 'partials/acaoDetalhe.html',
  className: 'ngdialog-theme-default ngDialogSize',
  controller: MetaController,
  scope: $scope

});

ダイアログが開かれると、リスナーは MetaController の他の情報を取得します。

$scope.$on('ngDialog.opened', function (e, $dialog) {
  console.log('ngDialog opened: ' + $dialog.attr('id'));
  $scope.$broadcast('getMetaCompletaEvent', $scope.meta.id);

}); 

ユーザーが最初にリンクをクリックすると、正常に機能します。コントローラーの関数が呼び出され、バックエンドから情報が取得されます。しかし、ユーザーがダイアログ ウィンドウの外側をクリックしてリンクを再度クリックすると、コントローラーのメソッドが 2 回呼び出されます。ユーザーがダイアログをもう一度「閉じて」リンクをもう一度クリックすると、コントローラーのメソッドが 3 回呼び出されます。ダイアログが非表示のままのようで、ユーザーがリンクをクリックするたびに、新しいダイアログが開き、別のコントローラーが作成されます。なぜそれが起こるのですか?ユーザーがダイアログの外をクリックした後、他のダイアログを実際に閉じる必要があります。

4

0 に答える 0