2016-03-18 41 views
2

bir hizmette aşağıdaki gibi bir hizmeti var. Şoktayım. Bunu yapmamın bazı önerilen veya basit bir yolu var mı? Aslında RouteParams meselesi geçerlidir olarakKullanım RouteParams Eğik 2

@Component({ 
    (...) 
    providers: [ QService] 
}) 
export class... 

:

+0

Eğer '' önyükleme (AppComponent, [ROUTER_PROVIDERS]) 'için ROUTER_PROVIDERS' eklediniz mi? –

+0

Bu yorum, Stack Overflow'un biraz garip kuralları nedeniyle gerekenden daha uzun. Evet yaparım. – astex

+0

Denemeyi deneyebilir misiniz: QService.params = [[Router], [RouteParams]] kodunuzun en sonunda? Ayrıca, ben enjektabl ekleyin: [RouteParams], ama bu @Component içinde. Siz de bunu deneyebilirsiniz olabilir –

cevap

1

Sana (yönlendirme dahil) Başvurunuzu işe koşulması zaman onun sağlayıcıları bağlıyor ve içinde bir bileşen seviyesinde bu hizmeti belirtmek gerektiğini düşünüyorum Bir bileşen bağlamında ve küresel olarak uygulamaya değil. Bu nedenle uygulama enjektörü, sadece bir çocuk enjektöründe (bir bileşen) mevcut olduğundan bu sağlayıcı hakkında bilgi sahibi değildir.

Bu, bağımlılık enjeksiyonu ve hiyerarşik enjektörlerle bağlantılıdır. Daha fazla ayrıntı için bu soruya bakın:

+0

Servisleri belirtilen şekilde sağlayıcı olarak kullanıyorum. Yönlendirme ile ilgili bir şey kaldırırsam, hizmet beklendiği gibi çalışır. Ancak, bir bileşenin hizmeti sarması ve arama dizesinde değişiklik yapması endişe duyuyor gibi görünüyor. Özellikle de arama dizesinin q değiştiğinde güncellenmesini istiyorum. Açısal olarak bunu yapmak için yazdığı "doğru" yolu görmekten mutluluk duyarım. – astex