2016-03-31 18 views
0

Kısa bir süre önce Angular2 yönlendiriciyle sorun yaşamaya başladım. Sorun, router-outlet'un dışındaki bileşenlerin çağrılan ngOnInit yöntemlerinin olmasıydı. Ancak router-outlet'un içindeki bileşenler olmazdı.Angular2 Router ve OnInit

previous issues with the Angular2 router as well ürünüm vardı. Ancak bu sorun, dış Javascript koduyla ilişkili görünüyordu, ancak bu, Angular2 yaşam döngüsü kancalarıyla açıkça bir sorun gibi görünüyordu.

Bazı Plunker'ları bir araya getirdim ama sorunları yeniden üretemedim. Yani sorun bu. Anlaşılan, sorunun ne olduğunu anladım (ve okuduğum diğer şeylerde ima edildi). Bu yüzden bunu bir soru olarak gönderiyorum ve başkalarının bu konuya girmesi durumunda bulduğum cevabı bir cevap olarak ekleyeceğim.

cevap

0

Daha önce de belirttiğim gibi, Angular2 yönlendirici ile ilgili diğer sorunları görebiliyorum. Şimdi bunu daha çok kazdım, sanırım alakalılar.

Buradaki eğilimi biraz şaşıyorum ve SystemJS'yi kullanmıyorum. Bunun yerine, sadece basit bir web paketi yapıyorum. Meselenin nerede olduğu anlaşılıyor. script etiketlerinin sırasının öneminden bahsettikleri birkaç sorun ve stackoverflow soruları gördüm. Eh, webpack, bu tür şeyleri benden uzak bir şekilde kontrol ettiğinden, gerçekten dikkat etmedim. Ama ortaya çıkıyor, önemli.

Ben şu anda webpack adresinden bundle.js dosya üretiyorum. Ama sevmediğim şey, uygulamanıza angular2-polyfills.js'u dahil etmenin bir yolunu bulmak zorunda olmanızdır. Her nasılsa bir şekilde webpack tarafından dahil olacak, ama değil.

Çalıştırdığım ilk şey, onu index.html sayfasının <head> bölümüne eklemekti. Bu, webpack'un dışına yükler ve bu yeterli görünüyor. Benim webpack GirişNoktası içinde

require('angular2/bundles/angular2-polyfills'); 

...: Ben de sadece ekleyerek içerebilir bulundu.

angular2-polyfills.js dosyası yerleştirildikten sonra, yaşam döngüsü kancaları doğru şekilde çağrılıyordu.