0

これが私の問題を示すplunkrです(コンソールを開く必要があります)。試してみるには?

  1. モーダル表示を 2 回クリックします。
  2. 通知ボタンをクリックします。次に、コンソールには次のように表示されます。

    Notification broadcasted. example.js:44 2 Notification received.

つまり、通知が 2 回受信されます。これは、モーダルのコントローラーが open() ごとに呼び出されるためです。私の問題は、モーダルに対して一度だけ呼び出されたいということです。$on() が登録解除関数を返すことは知っていますが、私のアプリではかなりの数のイベントが登録されており、モーダルが閉じられるたびにそれらを登録解除したくありません。ダイアログ自体を操作する必要があるため、 $on() を他の場所に置くこともできません。モーダル ダイアログごとに $scope イベントを 1 回だけ登録する簡単な方法はありませんか?

4

1 に答える 1

0

plnkr は (現在) 機能せず、問題のみを示す小さな plnkr の方が適切です。

ModalDemoCtrl の open() および close() 関数で、モーダルの状態を追跡する $scope プロパティ (例: $scope.showModal) を切り替えてみませんか。すでに開いている場合は、再度 modelService() を呼び出さないでください。

于 2013-02-02T04:14:35.723 に答える