Rota değiştiğinde benim app.componentimde geçerli rota adını veya rota yolunu bulmaya çalışıyorum. Rota adını, bir sarmalayıcı divunun etrafında sayfa sınıfı olarak kullanabilirim. Bunu halletmenin en iyi yolunu bulmaya çalışıyorum. Önceden aşağıda listelediğim gibi yöneltici değişiklikleri özelliğine abone olmuştum, ancak artık @ açısal/yönlendirici 3.0.0-alpha.3 ile artık mevcut değil gibi görünüyor. Herhangi bir düşünce ya da öneri varsa, ben çok minnettar olurdum. https://angular.io/docs/ts/latest/guide/router.htmlAngular2 @ açısal/yönlendirici 3.0.0-alpha.3 - Rota değiştiğinde rota adı ya da yolu nasıl alınır
cevap
Bu muhtemelen yardımcı olacağını,
import { CanActivate, Router, RouterStateSnapshot } from '@angular/router';
@Component({
selector: 'my-component',
templateUrl: 'my-component.html'
})
export class MyComponent implements CanActivate {
constructor(private router: Router) {}
canActivate(state: RouterStateSnapshot) {
// this is the future route you are intended to visit
console.log(state.url);
}
}
Daha fazla detay şu anda belgelenmiş bir, ama ilk zaman I hariç ActivatedRoute
benim için ateş değil üzerinde gözlemlenebilir url'dir taban url'ye (ex: indeks/indeks/indeks/item eserlerinden gidiyor, ama/index/item/index/item/2, index/dashboard'a gidiyor, hatta indeks/index yapmıyor).
aşağıdaki çözüm en iyi yöntem olup olmadığından emin değilim ne de performans etkileri nelerdir, ama aşağıdaki yönlendirici NavigationEnd
olaya aktif rotayı elde edebilir:
import { Component, OnInit, OnDestroy } from '@angular/core';
import { ROUTER_DIRECTIVES, Router, NavigationEnd } from '@angular/router';
@Component({
selector: 'navbar',
directives: [ROUTER_DIRECTIVES],
template: `
...
`
})
export class NavBarComponent implements OnInit, OnDestroy {
private sub: any;
constructor(private router: Router) {
}
ngOnInit() {
this.sub = this.router.events.subscribe(e => {
if (e instanceof NavigationEnd) {
console.log(e.url);
}
});
}
ngOnDestroy() {
this.sub.unsubscribe();
}
}
Bu, url ağacında ne kadar derin olduğuna veya nereye gidip geldiğine bakılmaksızın, rotayı her değiştirdiğinizde patlar.
OnActivate arayüzü artık v3 yönlendiricisiyle birlikte çalışmıyor, bu yüzden çalışacağını düşünmüyorum. Ve bu arada, RouteSegment sınıfı da. – Maxime
@Maxime doğru, hem RouteSegment hem de OnActive artık v3'te mevcut değil. Bunları dahil etmeye çalıştığımda aşağıdaki hataları alıyorum. @ açısal/yönlendirici/dizin "'hiçbir dışa aktarma yok' RouteSegment '. @ açısal/yönlendirici/dizin"' hiçbir dışa aktarma yok 'OnActivate' – orion583
Aynı sorun, RouteSegment gitti. Şimdi ne kullanmalıyız ??? Bu büyük "RC" değişikliklerinden nefret ediyorum. –
Steve'in cevaba
this.router.changes.subscribe((val) => {
var path = this._location.path();
if (path.indexOf('page-name') !== -1) {
this.pageClass = 'page-name';
}
})
+1: Benzer bir sorunla karşılaştım. Uygulamanın içinde gezinirken 'ActivatedRoute' gözlenebilir değildir. Ancak 'RouterLinkActive' yönergesi, geçerli rotaya göre bağlantı sınıflarını doğru bir şekilde değiştirdi. 'RouterLinkActive', bu cevapta olduğu gibi aynı yaklaşımı kullanır:' NavigationEnd' olayını dinlemek. – Biggie
- 1. Konum değiştiğinde rota adı nasıl alınır?
- 2. routeChangeStart, rota değiştiğinde tetiklenmiyor
- 3. CakePHP'nin 3: rota için eksik rota hatası
- 4. Raylar 3 Custom Rota
- 5. End Rota değiştiğinde gözlemlenen aralık Angular 2
- 6. Angular2 Rota tutulurken hata sayfası nasıl görüntülenir
- 7. React Router v4 - Geçerli rota nasıl alınır?
- 8. rota bileşenini rotaya göre Angular2 adresinden alın
- 9. Matara rota
- 10. yönlendiriciCanReuse ve yönlendirici Rota değiştiğindeOnReuse çağrılmadı
- 11. Yama rota rota tanımlanır bile, 404 verir ve
- 12. Rota yolunu dizgiye dönüştürme
- 13. Parametreyi rota korumasına geçirme
- 14. Özel Raylar rota
- 15. Omurga Yönlendirici tetiklemiyordur rota
- 16. Angular2 Geçerli güzergahın takma adı:
- 17. Özel rota işleyicileri
- 18. Nasıl Html.ActionLink asp.net MVC Rota Adı çağırmak için?
- 19. Dalda geçerli mutlak url, rota oluşturulmadan nasıl alınır? dal olarak
- 20. Raylar isteğe bağlı /: yerel rota
- 21. Symfony2 Rota değişkenlerine erişme
- 22. Rails 3 modelinde image_path rota yardımcısına nasıl erişebilirim?
- 23. Symfony'nin 2 yönlendirmesi rota
- 24. ActionController :: UrlGenerationError, Rota eşleşmiyor
- 25. Laravel rota sorunu
- 26. Rota Yapılandırma MVC
- 27. Laravel Middleware, Rota :: group
- 28. POST rota açıklama Symfony2
- 29. iOS6 çoklu rota sesi
- 30. Angular2: Geçerli rota korumalarını tetikle - oturum kapatma eylemini gerçekleştir
Bu yönelticide (yalnızca yol) –
yol güzergahı bulunmuyorsa, rota değişikliklerinin her değişmesi durumunda yönlendirici yolunu bulabilirsem. – orion583
Aynı sorunu yaşıyor. Eğer bir çözüm bulursanız, bunu postalayabilir misiniz? –