AngularJS Fabrik-Eigenschaft wird nicht aktualisiert, $Umfang, wenn Sie nicht mit push()

Ich habe eine Fabrik, die das abrufen der Daten aus einer externen Quelle. Sobald ich die Daten habe, verwende ich eine zweite Fabrik zu filtern, indem die bestimmte Kriterien erfüllen.

Den Fabrik-Eigenschaft zugewiesen ist, um den Anwendungsbereich.

Nun, wenn ich das in meiner Fabrik, ist es nicht update-Umfang:

factory.foo = [{id:1,name:'foo'}]; //doesn't work

dafür auch die filterin in eine zweite Fabrik funktioniert nicht

factory.foo = Filter.filter(); //doesn't work

während das funktioniert:

factory.foo.push({id:1,name:'foo'}); //works

Hat jemand eine Ahnung ob das beabsichtigt ist und warum das so ist, und wie es zu lösen?

Vollständige Probe plus plunkr

app.factory('Foo',function(Filter) {
  var factory = {
    foo:[],
    getDataForFoo:function() {
      factory.foo = Filter.filter(); //doesn't work
      //factory.foo = [{id:1,name:'foo'},{id:1,name:'foo'}]; //doesn't work
      //factory.foo.push({id:1,name:'foo'}); //works
    }
  };
  return factory;
});

app.factory('Filter',function() {
  var factory = {
    filter:function() {
      var arr = [];
      arr.push({id:1,name:'foo'});
      return arr;
    }
  }
  return factory;
});

app.controller('MainCtrl', function($scope,Foo) {
  $scope.test = 'running';
  $scope.foo = Foo.foo;

  $scope.click = Foo.getDataForFoo;
});

Plunkr

Schreibe einen Kommentar