2015-12-30 11 views
5

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

+0

I odnoszą się do aktualnej wersji beta angular2 w tej kwestii. –

Odpowiedz

12

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)
+0

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. –

+0

@ SergeyP.akaazure czy możesz zaakceptować odpowiedź, jeśli odpowiada na twoje pytanie? –

+0

co, jeśli muszę korzystać z dwóch usług? jak mogę to określić w konstruktorze? –

Powiązane problemy