Javascript 如何为模态对话框调用控制器一次?

Javascript 如何为模态对话框调用控制器一次?,javascript,angularjs,angular-ui,Javascript,Angularjs,Angular Ui,这里演示我的问题(您必须打开控制台)。如何尝试 单击显示模式2次 单击通知按钮。然后在控制台中,有: 已广播通知。示例.js:44 2收到通知。 这意味着通知会收到两次。这是因为在每个open()上都调用了模态的控制器。我的问题是,我只想为模态调用它一次。我知道$on()返回unregister函数,但在我的应用程序中,我注册了很多事件,我不想每次关闭modal时都注销它们。我也不能在其他任何地方使用$on(),因为我需要使用对话框本身。有没有更简单的方法来确保,对于每个模式对话框,$scope

这里演示我的问题(您必须打开控制台)。如何尝试

  • 单击显示模式2次
  • 单击通知按钮。然后在控制台中,有:

    已广播通知。示例.js:44
    2收到通知。

  • 这意味着通知会收到两次。这是因为在每个open()上都调用了模态的控制器。我的问题是,我只想为模态调用它一次。我知道$on()返回unregister函数,但在我的应用程序中,我注册了很多事件,我不想每次关闭modal时都注销它们。我也不能在其他任何地方使用$on(),因为我需要使用对话框本身。有没有更简单的方法来确保,对于每个模式对话框,$scope事件只注册一次

    plnkr(目前)不起作用,较小的plnkr显示问题会更好


    在ModalDemoCtrl中的open()和close()函数中,如何切换跟踪模态状态的$scope属性(例如,$scope.showmodel)。当它已经打开时,不要再调用modelService()。

    更改标题,这样它将反映您的问题。对不起,我完全忘记了标题,因为我在开头写了一些乱七八糟的东西。