2016-03-27 26 views
1

Yönlendirme konusunda biraz yardıma ihtiyacım var. Çoğu farklı yollar arasında hareket ettiğim sürece, tarayıcıdaki geri ve ileri düğmeleri de dahil olmak üzere, iyi çalışıyor. Ancak, sadece içeriği /route/:id üzerinde değiştirmek ve bileşenin yeniden başlatılmasını önlemek istemediğim bir ağır bileşen (youtube player) (rota) var. Bu yüzden, url'yi düzeltmek için Location.go(:id) kullanın.Angular2 Yönlendirme, ağır sayfa, dolaşım simülasyonu

Ancak şimdi tarayıcıdaki geri ve ileri düğmeleri düzgün çalışmıyor. Tarayıcı olayını karıştırmak, içeriği değiştirmek VEYA gezinmek ve devam etmek için Location.subscribe'u kullanabileceğimi düşündüm. AMA ... geri ve ileri düğmeleri çalışmıyor. Eğer geri dönersem (location.go()) url, ileriye doğru yok. İki kere geri dönemem.

Umarım birileri bana burada bir strateji verebilir ... Ben daireler çiziyorum. Location.go(:id) gibi sadece iş ilgilenmiyor gibi görünüyor.

cevap

1

Ağır bileşeninize yalnızca CanReuse uygulayın ve true ürününe dönün, daha sonra bileşen örneği korunacak ve yeniden yönlendirdiğinizde yeniden eklenecektir.

+0

Anladım. Teşekkürler. Her ne kadar arka ve ileri düğmeler tam olarak doğru çalışmıyorsa, aynı rotada/farklı kimliğimde olduğumda. Daha fazla kazmaya başlayacak. – jeff

+0

'Location.go()' özelliğini kullanmamalısınız. Bunun yerine this.router.navigate ...() 'komutunu kullanın (' Router'ı bileşeninize/servisinize enjekte etmeniz gerekir (ROUTER_PROVIDERS'ı bileşenlere eklemeyin - sadece 'bootstrap (...)' –

+0

Gezinme farklı bir rotaya (yalnızca bir parametrenin farklı olduğu durumlarda, 'canReuse' ın etkinleşmesini engelleyebilir (kendimle fazla oynamamış olabilir). Yönlendirici zaten bir özellik-tamamlanmış olarak görülmez. Nasıl geliştirilir ve nasıl ilerlenir –