2015-12-30 11 views
5

Çalışan bir angular2 Componen t var. Bazı servisler için bir sınıf uyguladım (önemliyse ng.core.Class kullanarak). Hizmetimi Component ürünüme enjekte etmenin en az kaç adımı vardır? Hizmetimi bootstrap işlevine dahil etmeli miyim? ng.core.Inject veya ng.core.Injectable?'dan herhangi birini kullanmalı mıyım? Tüm deneylerim şu ana kadar başarısız oldu.Düzgün ES5'te (Javascript) özel birime nasıl özel hizmet enjekte edilir?

+0

(yorumlarınızla onun kullanımı için bazı örnekler bulabilirsiniz). –

cevap

12

Bunu çok basit yapabilirsiniz. Sadece bir sınıf oluşturmak bir bileşeni

var Component = ng.core. 
     Component({ 
     selector: 'cmp', 
     template : '', 
     providers : [Service] 
     }). 
     Class({ 
     constructor: [Service, function(svc) { 
      svc.someFunction(); 
     }] 
     }); 

Ya

ng.platform.browser.bootstrap(Component, [Service]); 

İşte bootstrap yoluyla iletecek

// 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'); 
} 

Sonra Örneğin bootstrap

aracılığıyla providers mülkiyet veya geçirin Bir example, böylece alabilirsiniz ona bir bakış.

  • Class

    Referans Bu soru angular2 güncel beta sürümü bakın

+0

Teşekkürler. Bu şekilde çalışır. Benim için çalışmadığı * sebebi, yaratmadan önce “Servis” e başvurmaya çalışmamdır. Bu yüzden js dosyalarının yükleme sırası bu yaklaşımla önemlidir. –

+0

@ SergeyP.akaazure sorunuza cevap verirse cevabı kabul edebilir misiniz? –

+0

İki hizmet kullanmam gerekirse? Kurucuda bunu nasıl belirleyebilirim? –

İlgili konular