Ho un angolo di lavoro2 Componen
t. Ho implementato una classe per alcuni servizi (utilizzando ng.core.Class
se ciò è importante). Quali sono i passaggi minimi per iniettare il mio servizio sul mio Component
? Dovrei includere il mio servizio nella funzione bootstrap? Devo usare uno qualsiasi di ng.core.Inject
o ng.core.Injectable?
Tutti i miei esperimenti non sono riusciti finora.Come iniettare il servizio personalizzato su componente angolare in ES5 semplice (Javascript)?
risposta
Si può fare molto semplice. Basta creare una classe di farlo passare attraverso providers
proprietà o attraverso bootstrap
Per esempio
// 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');
}
poi passarlo al componente
var Component = ng.core.
Component({
selector: 'cmp',
template : '',
providers : [Service]
}).
Class({
constructor: [Service, function(svc) {
svc.someFunction();
}]
});
o tramite bootstrap
ng.platform.browser.bootstrap(Component, [Service]);
Ecco un example quindi puoi prendere uno sguardo a questo.
Riferimento
- Class (potete trovare alcuni esempi di utilizzo nei commenti)
Grazie. Funziona in questo modo. La ragione per cui * not * ha funzionato per me è che stavo cercando di riferirmi a 'Service' prima di averlo creato. Quindi l'ordine di caricamento dei file js è importante con tale approccio. –
@ SergeyP.akaazure puoi accettare la risposta se risponde alla tua domanda? –
e se ho bisogno di usare due servizi ?? come posso specificarlo nel costruttore? –
mi riferisco alla attuale versione beta di angular2 in questa questione. –