title: AngularJS : $watch within directive is not working when $rootScope value is changed
body: <p>I have created an application is angularjs in which i am having a directive, i am ahving a watch within the directive to trigger some methods within the directive when there is a change in $rootScope variable, but the problem is when the $rootScope.name value is changed the watch which is within the directive is not working</p>
  
  <p>My code is as given below</p>
  
  <p><strong><a href="http://jsfiddle.net/xxkgxLr9/" rel="nofollow">Working Demo</a></strong></p>
  
  <pre><code>var module = angular.module('myapp', []);
  
  module.controller("TreeCtrl", function($scope, $rootScope) {
      $scope.treeFamily = {
          name : "Parent"
      };
  
      $scope.changeValue = function()
      {
          $rootScope.name = $scope.userName;
      };
  
  });
  
  module.directive("tree", function($compile) {
      return {
          restrict: "E",
          transclude: true,
          scope: {},
          template:'&lt;div&gt;sample&lt;/div&gt;',
          link : function(scope, elm, $attrs) {
             function update()
             {
             };
             scope.$watch('name', function(newVal, oldVal) {
                  console.log('calling');
                 update();
              }, true);
          }
      };
  });
  </code></pre>