В настоящее время работает над проектом, где мы обнаружили огромные утечки памяти, когда не очищаем подписки на рассылку от уничтоженных областей. Следующий код исправил это:
var onFooEventBroadcast = $rootScope.$on('fooEvent', doSomething);
scope.$on('$destroy', function() {
//remove the broadcast subscription when scope is destroyed
onFooEventBroadcast();
});
Если эта практика также будет использоваться для часов? Пример кода ниже:
var onFooChanged = scope.$watch('foo', doSomething);
scope.$on('$destroy', function() {
//stop watching when scope is destroyed
onFooChanged();
});