My recommendation,
First, set a directive for the element you want to watch the height
Second, in the directive add a empty watcher as said at doc like this
If you want to be notified whenever $digest is called,
you can register a watchExpression function with no listener.(Since
watchExpression can execute multiple times per $digest cycle when a
change is detected, be prepared for multiple calls to your listener.)
directive
scope.$watch( function(){
scope.elHeight = element.height(); // or element.offsetHeight;
};
Third, set a watcher in controller for this height
cotroller
$scope.$watch('elHeight', function(newVal, oldVal){
console.log(newVal, oldVal)
};
Every single $digest means every single Angular-related changes within the scope.
--- edit ---
This covers most of angular-js related events. However it does not cover manual resizing, i.e. window resizing, vanilla javascript resizing, etc.
If I use AngularJS, I would fully use Angular all over the page. Thus,
for that case, I would fire small event to get $digest is called.