title: Why isn't $scope updated when bound properties of services are updated by other services?
body: <p>I have one service for handling data, and one for logic.</p>
  <pre><code>app.service('DataService', function() {
    this.stuff = [false];
    this.setStuff = function(s){
      this.stuff = angular.copy(s);
    }
  });
  </code></pre>
  <p>The data service has a <code>set</code> function and a <code>data</code> property.</p>
  <pre><code>app.service('LogicService', function(DataService, $http) {
    DataService.setStuff([&quot;apple&quot;, &quot;banana&quot;]);
    $http.get(&quot;./data.json&quot;).then(function(res){
      DataService.setStuff(res.data.stuff);
    });
    
  });
  </code></pre>
  <p>I am assigning a property of the data service to the controller for binding to the DOM.</p>
  <pre><code>app.controller('MainCtrl', function($scope, DataService, LogicService  ) {
    $scope.message = &quot;Hello, World!&quot;;
    $scope.stuff = DataService.stuff;
  
    //This is the only way I could get it to work, but isn't this JANKY?
    //$scope.$watch(
    //  function(){
    //    return DataService.stuff
    //  },
    // function(n,o){
    //   $scope.stuff = n;
    // })
   
  })
  </code></pre>
  <p>If I 'seed' the data service when the logic service is instantiated, and then later update it following an <code>$http</code> call, the DOM reflects the 'seeded' or initial value, but does not update.</p>
  <p>Is there something fundamental I am missing in my understanding of the digest loop?</p>
  <p>If I add a $watch function in my controller, all is well, but this seems yucky.</p>
  <p><strong>//FIXED//</strong></p>
  <p>@scott-schwalbe 's method of using <code>Object.asign()</code> works nicely, preserves my original structure, and is one line.</p>
  <pre><code>this.setStuff = function(s){
     Object.assign(this.stuff, s);
  }
  </code></pre>
  <p><a href="http://plnkr.co/edit/KNdASxvFkmLfIpmAY7Ce?p=preview" rel="nofollow noreferrer">Working Plunker</a></p>
  <p>(sorry for titlegore)</p>