Hier ist das Stück Code in AngularJS Ich schreibe 1.5.5 genannt bekommen:
export default angular.module(
'myApp', [])
.provider('finder', function finderProvider() {
this.$get = $get;
function $get() {
console.log('GET');
}
this.callMe =() => {
console.log('CALLED');
};
})
.config(['finderProvider', function(finderProvider) {
//finderProvider.$get();
finderProvider.callMe();
}])
.name;
Ich versuche später einen Dienst in diesem Anbieter zu injizieren. Ich habe in der Dokumentation gelesen, dass ich nur einen Service innerhalb eines Providers mit der Methode $ get() einfügen kann. Ich kann $ get() jedoch nicht automatisch aufrufen. Das funktioniert nur, wenn ich $ get() manuell in dem Abschnitt anrufe, in dem ich den Anruf kommentiert habe. Aber es scheint mir nicht richtig zu sein, $ get manuell zu bekommen.
In diesem Beispiel wird nur 'CALLED' protokolliert. Irgendeine Idee, was ich hier vermisse?
BEARBEITEN. Ich versuchte, eine andere Syntax unter Verwendung der Pfeilfunktion zu verwenden, aber erhielt das gleiche Resultat:
.provider('finder',() => {
return {
$get:() => {
console.log('GET');
},
callMe:() => {
console.log('CALLED');
}
};
})
Dank im Voraus.
ein dicker Pfeil behandelt 'this' anders als eine Funktion. Was passiert, wenn Sie Ihr erstes Beispiel auch auf einen dicken Pfeil aktualisieren? –
@DavidL Ich habe versucht, es mit den Pfeilfunktionen zu ändern, aber ich bekomme die gleichen Ergebnisse. Ich habe meinen ursprünglichen Post mit meinen neuen Änderungen aktualisiert. – mohi666
Es muss mehr los sein als das, was du hier gepostet hast. Es gibt keinen Grund, warum das nicht funktionieren sollte. –