2014-07-14 24 views
0

我試圖訪問查詢字符串中的值。AngularJS在查詢字符串中訪問值

這裏就是我在瀏覽器中看到:

http://localhost:1010/products/chairs.html?searchMe=testing123 

而在我的控制,我有:

var mySearchMeQuery = $location.search().searchMe; 

console.log("searchMe = " + mySearchMeQuery); 

在我的console.log,我看到:searchMe = undefined

我已經檢查我有$位置注入我的控制器。

**解決方案必須在IE8工作+ **

回答

0

你可以注入dependecy $ routeParams並使用像這樣得到的參數值:

$routeParams.searchMe 

Docs on routeParams

修訂答:

我已經更新了一個以$ routeParams爲例的現有小提琴。如果您點擊Moby鏈接並在那裏查看控制檯,則可以看到SearchMe作爲查詢字符串可用。

Fiddle

+0

試過,VAR文字= $ routeParams.searchMe;的console.log(文本);輸出是'未定義'...將$ routeParams注入到我的控制器中。 –

1

$位置只能如果您使用的路徑與哈希(#)。見this

1

使用$location.search()

它返回一個對象鍵 - 值對;關鍵是您的查詢字符串,值是查詢字符串值。

例子:

function MainCtrl($scope, $location) { 
    $scope.queryString = $location.search(); 
    // returns {searchMe: "testing123"} 
} 

如果你要打印相同的消息在你的問題

console.log("searchMe = " + $location.search().searchMe); 
+0

謝謝,$ window需要什麼? –

+0

我的網址不包含#,如果它仍然有效? –

+0

是的,它會工作。它適用於查詢字符串,並且不依賴散列。 –