也許我錯過了什麼?Angular 2激活路線
在Angular 2組件中,我簡單地試圖獲得完整的激活路徑。我不想使用location.href
。
我的構造函數如下:
constructor(private route: ActivatedRoute) {}
而在ngOnInit()
我想:
this.route.data.url
this.route.snapshot
既不工作。
任何幫助都非常感謝。
也許我錯過了什麼?Angular 2激活路線
在Angular 2組件中,我簡單地試圖獲得完整的激活路徑。我不想使用location.href
。
我的構造函數如下:
constructor(private route: ActivatedRoute) {}
而在ngOnInit()
我想:
this.route.data.url
this.route.snapshot
既不工作。
任何幫助都非常感謝。
你並不需要使用ActivatedRoute
對於這一點,你需要使用Router以查詢字符串的形式顯示當前網址:
constructor(r: Router) {
console.log(r.url);
}
謝謝你,這個和哈米德的答案都有效。這裏有最佳做法嗎? –
@MikeSomeone,我認爲我的方法當然是因爲這是路由器 –
同意的標準公共API,並且它不需要調用path()方法。 –
更簡單的解決方案是使用@angular/common
中的LocationStrategy類來直接從瀏覽器的URL中直接表示和讀取路由狀態,當試圖以字符串的形式獲取路由器URL時,這更方便this.router.url
。
import {LocationStrategy} from '@angular/common';
export class MyComponent implements OnInit {
constructor(private url:LocationStrategy) { }
ngOnInit() {
//this will log the current url
console.log(this.url.path());
}
}
謝謝,這個和Maximus的答案都有效。這裏有最佳做法嗎? –
很高興這有幫助!但我不認爲這裏有一個最佳實踐,但有些選項,這裏是另一個:你可以從'@ angular/router''構造函數(state:RouterStateSnapshot)'注入'RouterStateSnapshot'並像這樣使用'讓url:string = state.url;'並且在官方文檔路由器指南中使用這種方法。 –
@HamedBaatour,這將只顯示一個網址段,與激活的路線 –
'this.route.url'。 – developer033
所以我會假設我必須解析數組並重新構造這個url?我希望URL可以作爲路由器數據的字符串存在。 –
@MikeSomeone在下面檢查我的答案,希望它有幫助:) –