Mutlak yol yönlendirme
Gezinme için 2 yöntem vardır .navigate()ve.navigateByUrl()
.navigateByUrl()Mutlak yol yönlendirmesi için yöntemi kullanabilirsiniz :
import {Router} from '@angular/router';
constructor(private router: Router) {}
navigateToLogin() {
this.router.navigateByUrl('/login');
}
Gitmek istediğiniz bileşenin URL'sinin mutlak yolunu koyarsınız.
Not: Yönlendiricinin navigateByUrlyöntemini çağırırken her zaman tam yolu belirtin . Mutlak yollar bir satır aralığı işaretiyle başlamalıdır/
// Absolute route - Goes up to root level
this.router.navigate(['/root/child/child']);
// Absolute route - Goes up to root level with route params
this.router.navigate(['/root/child', crisis.id]);
Göreli yol yönlendirme
Göreli yol yönlendirmeyi kullanmak istiyorsanız, .navigate()yöntemi kullanın .
NOT: Yönlendirmenin, özellikle ebeveyn, kardeş ve çocuk yollarının nasıl çalıştığı biraz sezgisel değildir:
// Parent route - Goes up one level
// (notice the how it seems like you're going up 2 levels)
this.router.navigate(['../../parent'], { relativeTo: this.route });
// Sibling route - Stays at the current level and moves laterally,
// (looks like up to parent then down to sibling)
this.router.navigate(['../sibling'], { relativeTo: this.route });
// Child route - Moves down one level
this.router.navigate(['./child'], { relativeTo: this.route });
// Moves laterally, and also add route parameters
// if you are at the root and crisis.id = 15, will result in '/sibling/15'
this.router.navigate(['../sibling', crisis.id], { relativeTo: this.route });
// Moves laterally, and also add multiple route parameters
// will result in '/sibling;id=15;foo=foo'.
// Note: this does not produce query string URL notation with ? and & ... instead it
// produces a matrix URL notation, an alternative way to pass parameters in a URL.
this.router.navigate(['../sibling', { id: crisis.id, foo: 'foo' }], { relativeTo: this.route });
Veya yalnızca geçerli rota yolunda, ancak farklı bir rota parametresine gitmeniz gerekiyorsa:
// If crisis.id has a value of '15'
// This will take you from `/hero` to `/hero/15`
this.router.navigate([crisis.id], { relativeTo: this.route });
Bağlantı parametreleri dizisi
Bir bağlantı parametreleri dizisi, yönlendirici gezinmesi için aşağıdaki bileşenleri içerir:
- Hedef bileşene giden yolun yolu.
['/hero']
- Rota URL'sine giren gerekli ve isteğe bağlı rota parametreleri.
['/hero', hero.id]veya['/hero', { id: hero.id, foo: baa }]
Dizin benzeri sözdizimi
Yönlendirici, rota adı aramasına rehberlik etmeye yardımcı olmak için bir bağlantı parametreleri listesinde dizin benzeri sözdizimini destekler:
./ veya hiçbir eğik çizgi mevcut seviyeye göreli değildir.
../ rota yolunda bir seviye yukarı çıkmak için.
Göreli gezinme sözdizimini bir ata yoluyla birleştirebilirsiniz. Bir kardeş rotaya ../<sibling>gitmeniz gerekiyorsa, bir seviye yukarı, ardından kardeş rota yolunu yukarı ve aşağı gitmek için kuralı kullanabilirsiniz .
Göreceli nagivasyon hakkında önemli notlar
Router.navigateYöntemin göreli bir yolunda gezinmek ActivatedRouteiçin, yönlendiriciye geçerli yol ağacında nerede olduğunuzu bildirmesi için sağlamanız gerekir .
Bağlantı parametreleri dizisinden sonra, öğesine relativeToayarlanmış bir özellik içeren bir nesne ekleyin ActivatedRoute. Ardından yönlendirici hedef URL'yi etkin rotanın konumuna göre hesaplar.
Resmi Açısal Yönlendirici Belgelerinden