URL içinde bir yerde bulunan routerLink'e parametre nasıl aktarılır?


208

routerLinkGibi yollar için bir parametre geçebilir biliyorum

/user/:id

yazarak

[routerLink]="['/user', user.id]"

Peki bunun gibi rotalar hakkında:

/user/:id/details

Bu parametreyi ayarlamanın bir yolu var mı yoksa farklı bir URL şeması mı düşünmeliyim?

Yanıtlar:


347

Özel örneğinizde aşağıdakileri yaparsınız routerLink:

[routerLink]="['user', user.id, 'details']"

Bir denetleyicide bunu yapmak için enjekte edebilir Routerve kullanabilirsiniz:

router.navigate(['user', user.id, 'details']);

Yönlendirme ve Gezinme'nin Açısal dokümanlar Bağlantı Parametreleri Dizisi bölümünde daha fazla bilgi


Bu konuda daha fazla bilgi bulabileceğim herhangi bir bağlantı sağlayabilir misin ..
refactor

4
Sen yönlendirici kılavuza Açısal docs daha bu konuda bilgi edinebilir @CleanCrispCode: angular.io/docs/ts/latest/guide/...
Wojciech Kwiatek

<button mat-button routerLink="...">View user</button>Sözdizimi ne olacak ?
Stephane

33

Belki çok geç cevap ama param ile başka bir sayfaya gitmek isterseniz,

[routerLink]="['/user', user.id, 'details']"

ayrıca gibi yönlendirme yapılandırmasını unutmamalısınız,

 [path: 'user/:id/details', component:userComponent, pathMatch: 'full']

11

İlk önce tabloda yapılandırın:

const routes: Routes = [  
{
  path: 'class/:id/enrollment/:guid',
  component: ClassEnrollmentComponent
 }
];

şimdi tür kod kodu:

this.router.navigate([`class/${classId}/enrollment/${4545455}`]);

başka bir bileşende param almak

 this.activatedRoute.params.subscribe(params => {
  let id = params['id'];
  let guid = params['guid'];

  console.log(`${id},${guid}`);
  });

0

Bunu başarmanın birçok yolu vardır.

  • [RouterLink] yönergesi ile
  • Router sınıfının navigate (Array) yöntemi
  • Bir dize alıp bir vaat döndüren navigateByUrl (string) yöntemi

RouterLink özniteliği, özellik modülünü tembel yüklemiş olmanız durumunda routingModule'u özellik modülüne aktarmanızı veya AppModule içe aktarma dizisine otomatik olarak eklenmediyse app-routing modülünü içe aktarmanızı gerektirir.

  • RouterLink
<a [routerLink]="['/user', user.id]">John Doe</a>
<a routerLink="urlString">John Doe</a> // urlString is computed in your component
  • Gezin
// Inject Router into your component
// Inject ActivatedRoute into your component. This will allow the route to be done related to the current url
this._router.navigate(['user',user.id], {relativeTo: this._activatedRoute})
  • NavigateByUrl
this._router.navigateByUrl(urlString).then((bool) => {}).catch()
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.