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

时间:2013-01-31 09:59:54

标签: javascript angularjs angular-ui

这是a plunkr演示我的问题(你必须打开控制台)。怎么试试?

  1. 点击show modal 2x次。
  2. 单击“通知”按钮。然后在控制台中,有:

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

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

1 个答案:

答案 0 :(得分:0)

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

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