1

Ich möchte wissen, ob die Konstruktorfunktion einer eckigen Fabrik verwendet werden kann, um Code zu starten, wenn die Fabrik initialisiert wird. Zum Beispiel habe ich einen Factory-Service, bei dem ich von der Konsole aus drucken möchte, wenn die App startet oder wenn diese Factory aufgerufen/initialisiert wird. Kann mir bitte jemand erklären?Wie werden Variablen in einer eckigen Fabrik initialisiert?

Angular Factory:

  app.factory('HomeFactory', function() { 
      // create a object using constructor function 
       var HomeFactory = function() { 
       console.log('in the constructor function'); 
       }; 
       HomeFactory.contactSubmit = function() { 
       var self = this; 
       console.log(self.model); 
       } 
       // returning the factory object 
       return (HomeFactory); 
       }); 

Angular Controller:

app.controller('HomeController', function($scope, $state, HomeFactory) { 
    $scope.HomeFactory = HomeFactory; 
} 

);

+1

Möglicherweise benötigen Sie eine Instanz von? '$ scope.home = new HomeFactory()'? –

+0

auch, sollte Ihre 'contactSubmit'' HomeFactory.prototype.contactSubmit' mit 'this' anstelle von undefined' self' sein. –

+0

Fertig, änderte sich selbst, um 'diese' Referenz zu nehmen. Und ich sehe viele Entwickler, die die Methoden an den Prototyp des Objekts anfügen, wenn beides gut zu funktionieren scheint, ich bin sicher, dass es einen Grund gibt, der empfohlen wird. –

Antwort

1

Factory, die Sie erstellen, ist nur eine Konstruktorfunktion. Sie müssen Instanzen instanziieren, um sie aufzurufen:

$scope.home1 = new HomeFactory(); 
$scope.home2 = new HomeFactory(); 
Verwandte Themen