Mam działający kątowy2 Componen
t. Zaimplementowałem klasę dla niektórych usług (używając ng.core.Class
, jeśli to ma znaczenie). Jakie są minimalne kroki, aby wprowadzić moją usługę do mojego Component
? Czy powinienem włączyć moją usługę do funkcji bootstrap? Powinienem użyć dowolnego z ng.core.Inject
lub ng.core.Injectable?
Wszystkie moje eksperymenty zawiodły do tej pory.Jak wprowadzić niestandardową usługę do komponentu kątowego w prostym języku ES5 (Javascript)?
Odpowiedz
Możesz to zrobić bardzo prosto. Wystarczy utworzyć klasę przekazać je poprzez providers
nieruchomości lub poprzez bootstrap
Na przykład
// Alternative 1
var Service = ng.core.Class({
constructor : function() {},
someFunction : function() {
console.log('Some function');
}
})
// Alternative 2
var Service = function() {}
Service.prototype.someFunction = function() {
console.log('Some function');
}
Następnie przekazać go do komponentu
var Component = ng.core.
Component({
selector: 'cmp',
template : '',
providers : [Service]
}).
Class({
constructor: [Service, function(svc) {
svc.someFunction();
}]
});
lub poprzez bootstrap
ng.platform.browser.bootstrap(Component, [Service]);
Oto example, dzięki czemu możesz wziąć spojrzenie na to.
referencyjny
- Class (można znaleźć kilka przykładów jego zastosowania w komentarzach)
Dzięki. Działa w ten sposób. Powodem, dla którego to * nie * działało dla mnie, było to, że próbowałem odnieść się do 'Usługi' zanim ją utworzyłem. Dlatego kolejność wczytywania plików js jest ważna przy takim podejściu. –
@ SergeyP.akaazure czy możesz zaakceptować odpowiedź, jeśli odpowiada na twoje pytanie? –
co, jeśli muszę korzystać z dwóch usług? jak mogę to określić w konstruktorze? –
I odnoszą się do aktualnej wersji beta angular2 w tej kwestii. –