2016-04-13 14 views
0

Temel olarak,Derin bağlantı için parametrelere çocuk yönlendiriciye nasıl parametreler aktarılır? Gibi, bileşen yönlendirme bir çocuk sinyal bir bileşen varsa

@RouteConfig([{ 
    path: '/', 
    name: 'UserList', 
    component: UserListComponent, 
    useAsDefault: true 
},{ 
    path: '/:id', 
    name: 'UserView', 
    component: UserViewComponent 
}]) 

:

@RouteConfig([ 
    { 
     path: '/users/...', //CHILD ROUTING COMPONENT 
     name: 'Users', 
     component: UsersComponent, 
     useAsDefault: true 
    } 
]) 
export class App { 
    constructor(private _router: Router) {} 
    ucFirst(str:string){ 
     var parts = str.split(' '); 
     for(var i = 0, ilen = parts.length; i < ilen; i++){ 
      parts[i] = parts[i].charAt(0).toUpperCase() + parts[i].slice(1); 
     } 
     return parts.join(' '); 
    } 
    ngOnInit() { 
    //Handle deep links if exist 
    var baseHref = document.getElementsByTagName('base')[0].href; 
     var path = location.href.replace(baseHref, ''); 

     if(path.length){ 
      let slugs = path.split('/'); 
      for(let i = 0, ilen = slugs.length; i < ilen; i++){ 
       slugs[i] = this.ucFirst(slugs[i]); 
      } 
      this._router.navigate(slugs); 
     } 
    } 
} 

Sonra çocuk yönlendirici gibi, yolların bir parametrenin tür kullanır Derin bağlantılar nasıl çalışır? Ben torun görünümüne ulaşmak için kodu kullanabilirim, ancak derin bağlantılar başarısız olur (Hata yok rota 'kullanıcılar/1' 1 burada: id). Temel olarak, ana yönlendiricideki yolun yarısını ve alt yönlendiricinin yarısını tutmam gerekiyor, ancak bunu yapmanın yolunu bulamadım. Derin bağları tamamen ebeveyn içinde var olduğu sürece çalışabilirim ancak daha büyük bir proje üzerinde çalışıyorum ve kurulumu daha modüler hale getirmek istiyorum. ama bu yüzden bu benim açımdan tür basit yapılandırma sorunudur hayal önce hiç kullanmadım plunker, üzerinde https://plnkr.co/edit/7cKBEwQmFSJrDFWhL4EV?p=preview Yerel olarak çalışır (eksi derin bağlantılar):

Bu plunker kodumu koyduk. Ama en azından size modülerleştirme girişimi hakkında bir fikir verir. Sana url kullanarak gezinmek için çalışıyoruz düşünüyorum

cevap

1

,

ve bu örnekte Aslında bu

this._router.navigateByUrl(path); 
+0

gibi navigate yerine navigateByUrl kullanmaya gerek doğru bir şekilde yapmak için, 'bu olmalı ._router.navigateByUrl (yol) ', ancak navigateByUrl harika çalışıyor! Teşekkürler! – dmcblue

+0

Düzeltme için teşekkürler, bir çeşit 'url' için bu tür bir döngü ürettiğinizi varsayalım, benim kötü .... Hoş Geldiniz! –