I'm trying to migrate from angular 1.2.28 to angular 1.3.16, however my code broke.
Angular 1.2.28 working: http://plnkr.co/edit/XfVakwA3Upm7Z2wosHCQ?p=preview
Angular 1.3.16 not working: http://plnkr.co/edit/4VxcHL0MHddobkmu9DMG?p=preview
JS
var app = angular.module('app', []);
app.run(function($rootScope, $timeout){
  $rootScope.loading = true;
  $timeout(function(){
    $rootScope.items = ['Angular', '1.3.16', 'doesnt work'];
    $rootScope.loading = false;
  }, 3000);
});
app.directive('refresh', function(){
  return {
    restrict: 'A',
    require: '^myDirective',
    link: function(scope, element, attrs, ctrl){
      if(scope.$last)
        ctrl.init();
    }
  };
});
app.directive('myDirective', function(){
  return {
    restrict: 'E',
    replace: true,
    transclude: true,
    template: '<div class="my-directive"><p>Height: {{myHeight}}</p> <div ng-transclude></div></div>',
    controller: function($scope, $element){
      this.init = init;
      function init(){
        $scope.myHeight = $('.my-directive').height();
      }
    }
  };
});
HTML
<!DOCTYPE html>
<html ng-app="app">
  <head>
    <script data-require="angular.js@1.3.16" data-semver="1.3.16" src="https://code.angularjs.org/1.3.16/angular.js"></script>
    <script data-require="jquery@1.11.0" data-semver="1.11.0" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>
  <body>
    <h1>Angular 1.3.16</h1>
    <div ng-show="loading">Loading...</div>
    <my-directive ng-hide="loading">
      <div ng-repeat="item in items" refresh>
        <p>{{item}}</p>
      </div>
    </my-directive>
  </body>
</html>
The idea is to only run certain code when the inner html is outputted. Height is 0 in angular 1.3.16.
However, if I remove ng-hide="loading" from <my-directive ng-hide="loading"> in angular 1.3.16, height gets the appropriated value.
Any ideas how can I solve this?
 
     
     
    