2017-03-01 54 views
1

當鉻調試,我可以看到這個對象:訪問查詢字符串PARAM在angular2與this.activeRoute.queryParams._value

this.activeRoute.queryParams._value

activeRoute在我的構造函數傳遞作爲 private activeRoute: ActivatedRoute

當我'm in vs code and type this.activeRoute.queryParams._value不是可用對象。有沒有人去訪問該對象?


只是想發佈我最終使用的代碼。

this.activeRoute.queryParams.subscribe((params: Params) => { 
    let context = params['context']; 
    this.context = context; 
    }); 

也不要忘了PARAMS添加到import語句

import {Router, ActivatedRoute, Params} from '@angular/router'; 
+1

'_value'是queryParams'的'私有成員 - 只有類本身可以訪問它。由於JavaScript沒有私有或公共範圍的概念,因此您可以從技術上訪問代碼中的成員,但TypeScript不允許您編譯它,因此它不起作用。 –

+0

你可以在這裏看到如何從你的代碼訪問查詢參數:http://stackoverflow.com/questions/35688084/how-get-query-params-from-url-in-angular2 –

+0

好的,謝謝你的信息。我正在嘗試使用this.activeRoute.snapshot.queryParams ['context']獲取querystring參數,但它沒有得到正確的值。我認爲它獲得了以前的價值。我注意到,儘管在chrome中this.activeRoute.queryParams._value.context確實包含正確的值。 – Rich

回答

2

這裏是基於我的意見的答覆。

_valuequeryParams(不知道是什麼類型)的私有成員,所以私有範圍意味着它不能在定義類之外訪問。

您可能已經意識到JavaScript沒有公共和私人範圍的概念,因此這意味着使用您的代碼訪問此成員在技術上是可行的,但TypeScript編譯器將拒絕將您的代碼轉換爲JavaScript,因爲它可以使用私人範圍。

回答這個問題給出了一個合適的方式來獲得查詢字符串參數:How get query params from url in angular2?