Deutsch English

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 );