title: Directive does not update on service model change
body: <p>I have a service that contains my application's model:</p>
  
  <pre><code>angular.module('adminClient').factory('myApi', function () {
      var model = {};
      model.myObject = {
          label: 'New York City'
      };
  
      return {
          model: function () {
              return model;
          }
      };
  });
  </code></pre>
  
  <p>A partial/controller has access to the model and can set a new myObject:</p>
  
  <pre><code>angular.module('adminClient').controller('MySelectNetworkCtrl', function ($scope, myApi) {
  
      $scope.myObject = myApi.model().myObject;
  
  });
  </code></pre>
  
  <p>In addition to this, I have a directive that should display the label contained in myObject:</p>
  
  <pre><code>angular.module('nav').directive('myTopBar', function(myApi) {
      return {
          restrict: 'E',
          replace: true,
          scope: {},
          templateUrl: 'nav/directive/my-top-bar/my-top-bar.html',
          link: function(scope, element, attrs, fn) {
              scope.myObject = myApi.model().myObject;
          }
      };
  });
  </code></pre>
  
  <p>And here is the HTML:</p>
  
  <pre><code>&lt;div id="my-top-bar"&gt;
      &lt;span ng-bind="myObject"&gt;&lt;/span&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>When I run the application, the label is displayed fine (New York City), but as soon as the controller changes the myObject, the label in the directive remains unchanged. I can also see this in the Chrome Angular scope inspector.</p>
  
  <p>Any idea how I can make the directive display the current value even after changed by the controller?</p>