に関して$location.search
、ドキュメントは言う、
パラメータなしで呼び出された場合、現在の URL の検索部分を (オブジェクトとして) 返します。
私の URL では、クエリ文字列に?test_user_bLzgB
値のないパラメーターがあります。また$location.search()
、オブジェクトを返します。実際のテキストを取得するにはどうすればよいですか?
に関して$location.search
、ドキュメントは言う、
パラメータなしで呼び出された場合、現在の URL の検索部分を (オブジェクトとして) 返します。
私の URL では、クエリ文字列に?test_user_bLzgB
値のないパラメーターがあります。また$location.search()
、オブジェクトを返します。実際のテキストを取得するにはどうすればよいですか?
クエリ文字列をテキストとして表示する必要がある場合は、次を使用できます。$window.location.search
$location.search()
変数としてのキーとその値としての値で構成されるオブジェクトを返します。したがって、次のようにクエリ文字列を記述した場合:
?user=test_user_bLzgB
次のようにテキストを簡単に取得できます。
$location.search().user
?foo=bar のようなキーや値を使用したくない場合は、ハッシュ #test_user_bLzgB を使用することをお勧めします。
と呼び出し
$location.hash()
取得したいデータである「test_user_bLzgB」を返します。
追加情報:
クエリ文字列メソッドを使用し、$location.search() で空のオブジェクトを取得している場合、Angular が html5 戦略ではなくハッシュバン戦略を使用している可能性があります...それを機能させるには、この構成をモジュール
yourModule.config(['$locationProvider', function($locationProvider){
$locationProvider.html5Mode(true);
}]);
最初に、クエリ文字列を取得するための正しい URL 形式を作成します#?q=stringを使用します
http://localhost/codeschool/index.php#?foo=abcd
$location サービスをコントローラーに注入する
app.controller('MyController', [ '$location', function($location) {
var searchObject = $location.search();
// $location.search(); reutrn object
// searchObject = { foo = 'abcd' };
alert( searchObject.foo );
} ]);
したがって、アウトプットはabcdでなければなりません
これも使えます
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var queryValue = getParameterByName('test_user_bLzgB');
機能していない場合$location.search()
は、次のものがあることを確認してください。
1)html5Mode(true)
アプリのモジュール構成で構成されています
appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(true);
}]);
2) <base href="/">
HTML に存在する
<head>
<base href="/">
...
</head>
参考文献:
非常に遅い回答:(しかし、必要な人にとっては、これは機能しますAngular jsも機能します:) URLSearchParamsこの新しいAPIを使用して場所から値を取得する方法を見てみましょう!
// "?post=1234&action=edit" と仮定
var urlParams = new URLSearchParams(window.location.search);
console.log(urlParams.has('post')); // true
console.log(urlParams.get('action')); // "edit"
console.log(urlParams.getAll('action')); // ["edit"]
console.log(urlParams.toString()); // "?post=1234&action=edit"
console.log(urlParams.append('active', '1')); // "?
post=1234&action=edit&active=1"
URLSearchParamsの代わりにこの関数を使用します
urlParam = function (name) {
var results = new RegExp('[\?&]' + name + '=([^&#]*)')
.exec(window.location.search);
return (results !== null) ? results[1] || 0 : false;
}
console.log(urlParam('action')); //edit