Last active
August 29, 2015 14:26
-
-
Save ElectricMaxxx/c3f096e8a455b00332cc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Eigentlich möchte ich gerne einen Provider als eine art Chain implementieren, der im `.config()` block über einen Adder | |
Services eingehängt bekommt. Wenn ich aber folgendes probiere: | |
``` javascript | |
angular.module('myModul', []).config(function(myCoolProvider, myService) { | |
myCoolProvider.add(myService); | |
}); | |
`` | |
Der Provider chaint durch die einzelnen Services und tut damit was. Das ist für mich eine Art meine lib offen für | |
cusotmizing zu halte, dann ein Nutzer, dann selbständig Services einhängen kann. | |
Ja leider scheint das nicht zu gehen, da zur der Zeit der Service `myService` noch garnicht zur | |
Verfügung steht. | |
Meine Zweite Idee war: Dann halt durch `$injector.get('myService');` im adder des Providers - mist, der | |
Service ist noch immer nicht erreichbar. Dann halt vor dem Result in `$get()`, also das was den Provider | |
eigentlich ausmacht: | |
``` javascript | |
angular.module('myModule').provider('myCoolProvider', function ($injector) { | |
this.list = []; | |
this.add = function (providerId) { | |
this.list.push(providerId); | |
} | |
this.$get = function () { | |
_.each(this.list, function (id) { | |
this.serviceList.push($injector.get(id)); | |
} | |
return { | |
// do the work | |
} | |
} | |
}); | |
``` | |
Aber scheinbar ist auch hier der Service noch nicht erreichbar, wenn der Provider dann schlussendlich inztanziert | |
wird. Komischerweise existiert von meinem Service ein Provider (myServiceProvider, nach debugging gefunden) | |
aber noch nicht der Service selbst, sodass ich ihn bekommen könnte. | |
Was mache ich falsch, was geht besser? Wann sind die Services da? | |
btw: injection mache ich normal auch anders is hier nur kürzer. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment