
Unterschiede zwischen Service, Provider und Factory
In diesem Blog möchte ich euch die Unterschiede zwischen Service, Provider und Factory in AngularJS erläutern.
Service
Wenn ihr mithilfe von folgender Syntax den Servicename als injectable Argument deklariert, bekommt ihr eine Instanz der Funktion.
Syntax: module.service( 'serviceName', function );
Factories
Wenn der Factoryname als injectable Argument deklariert wird, dann bekommt man den Wert, der vom Aufruf der Funktionsreferenz, die an module.factory geschickt wird.
Syntax: module.factory( 'factoryName', function );
Providers
Deklariert ihr dagegen den ProviderName als injectable Argument, bekommt ihr den Wert von (new ProviderFunction()).$get(). Die Konstruktor Funktion wird dabei instanziert, bevor die $get Methode aufgerufen wird. Die ProviderFunction ist die Funktions-referenz, welche an module.provider übergeben wird.
Der Vorteil von Providern ist, dass sie während der Konfigurations-phase des Moduls auch konfiguriert werden können.
Syntax: module.provider( 'providerName', function );