使用控制器时清理

时间:2014-12-01 20:13:51

标签: javascript angularjs

我正在编写一个角度应用程序,并开始喜欢“控制器为”语法。我喜欢“控制器为”的语法是我不必注入$ scope但是我没有看到任何方法知道何时运行没有$ destroy事件的清理代码。但是,在某些地方,我需要在删除控制器范围时进行一些清理。如果你注入$ scope就不会有问题,因为当删除范围时会触发$ destroy但是我希望尽可能避免注入范围。

当您使用“控制器作为”语法whitout注入$ scope时,是否可以为删除控制器时注册某种类型的侦听器?

以下是我想要清理的示例。我有一个消息总线,我可以为某些事件注册新的监听器。删除控制器后,我想从messagebus中取消注册。

   controller('myController', function (messageBus) {
       var vm = this;
       vm.onNewMessage = function (message) {
           console.log(message);
       };
       messageBus.on('NEW_MESSAGE', vm.onNewMessage);

       //messageBus.off() - Don't know when to run this
   });

0 个答案:

没有答案