2016-10-10 29 views
0

我有激活的事件偵聽器:

var unregisterSubscription = $rootScope.$on(event, handler); 

該事件在分量和/或指令激活。 我希望偵聽器在用戶使用偵聽器的作用域時偵聽,否則不要。

現在我的問題是在哪裏激活unregisterSubscription方法?

+0

請問您可以在您的問題中添加更多上下文嗎?因爲這個東西可以在多個地方完成,比如'app.run'或者在當前組件本身的一個控制器中。 –

+0

什麼情況下我可以添加更多內容? – Zakk

+0

**你在哪裏激活取消註冊**是什麼意思? –

回答

0

您可以在控制器中創建銷燬事件。

$rootScope.$on('$destroy', function() { 
    unregisterSubscription(); // Call unregisterSubscription method. 
}); 
+1

$ rootScope在應用程序運行時永遠不會被破壞 – Ladmerc

+0

@Ladmerc它可能出現在特定組件控制器的$ scope'。 –

+0

你可以注入$ scope或$ rootScope到控制器 –