title: Why my value is not updated in the directive's view
body: <p>I have a value named <code>$scope.title</code> in my controller. This value is initialized with <code>$scope.title = 'global.loading';</code>. I have a factory named <code>Product</code>.</p>
  
  <p>My view is calling a directive via <code>&lt;menu-top ng-title="title"&gt;&lt;/menu-top&gt;</code>, the view of this directive is <code>&lt;span&gt;{{title|translate}}&lt;/span&gt;</code>.</p>
  
  <p>When I want to get a product I do : <code>Product.get(id)</code>. Their is two possibility. </p>
  
  <p>First one (working) -> My product is cached in localstorage and my title in the directive is uptated.</p>
  
  <p>Second one (not working) -> My product is not cached, I call my WebService, put the response in cache and return the response. In this case, the title is updated (<code>console.log</code>) in the controller, but not in my directive ...</p>
  
  <pre><code>angular.module('angularApp')
    .directive('menuTop', function () {
      return {
        templateUrl: 'views/directives/menutop.html',
        restrict: 'E',
        scope:{
          ngTitle: '=?'
        },
        link: function postLink(scope) {
          scope.title = scope.ngTitle;
        }
      };
    });
  
  
  
  angular.module('angularApp')
    .controller('ProductCtrl', function ($scope, $routeParams, Product) {
      $scope.productId  = parseInt($routeParams.product);
      $scope.title      = 'global.loading';
  
      $scope.loading  = true;
      $scope.error    = false;
      $scope.product  = null;
  
      Product
        .get($scope.productId)
        .then(function(product){
          $scope.loading  = false;
          $scope.title = product.name;
          $scope.product = product;
        }, function(){
          $scope.error = true;
          $scope.loading = false;
        })
      ;
    });
  
  
  angular.module('angularApp')
    .factory('Product', function ($http, responseHandler, ApiLink, LocalStorage, $q) {
      var _get = function(id) {
        return $q(function(resolve, reject) {
          var key = 'catalog/product/' + id;
          var ret = LocalStorage.getObject(key);
          if (ret) {
            return resolve(ret);
          }
  
          responseHandler
            .handle($http({
              method: 'GET',
              url: ApiLink.get('catalog', 'product', {id: id})
            }))
            .then(function(response) {
              if (response.product &amp;&amp; response.product.name) {
                LocalStorage.putObject(key, response.product, 60 * 5);
                return resolve(response.product);
              }
              reject(null);
            }, function() {
              reject(null);
            });
        });
      };
  
      return {
        'get': _get
      };
    });
  </code></pre>
  
  <p>Thank you for your help !</p>