HTMLソースコード
<div ng-app="">
<div ng-controller="test">
<div ng-address-bar browser="html5"></div>
<br><br>
$location.url() = {{$location.url()}}<br>
$location.search() = {{$location.search('keyword')}}<br>
$location.hash() = {{$location.hash()}}<br>
keyword valus is={{loc}} and ={{loc1}}
</div>
</div>
AngularJSソースコード
<script>
function test($scope, $location) {
$scope.$location = $location;
$scope.ur = $scope.$location.url('www.html.com/x.html?keyword=test#/x/u');
$scope.loc1 = $scope.$location.search().keyword ;
if($location.url().indexOf('keyword') > -1){
$scope.loc= $location.url().split('=')[1];
$scope.loc = $scope.loc.split("#")[0]
}
}
</script>
ここで、変数loc
とloc1
は両方とも上記のURLの結果として test を返します。これは正しい方法ですか?
私はこれが古い質問であることを知っています、しかしまばらなAngularドキュメンテーションを考えるとこれを整理するのに私は時間がかかりました。 RouteProvider および routeParams は、進むべき道です。ルートはあなたのコントローラ/ビューへのURLを配線し、routeParamsはコントローラに渡すことができます。
Angular seed プロジェクトをチェックしてください。 app.js内に、ルートプロバイダの例があります。 paramsを使用するには、単にこのようにそれらを追加します。
$routeProvider.when('/view1/:param1/:param2', {
templateUrl: 'partials/partial1.html',
controller: 'MyCtrl1'
});
その後、あなたのコントローラに$ routeParamsを注入します。
.controller('MyCtrl1', ['$scope','$routeParams', function($scope, $routeParams) {
var param1 = $routeParams.param1;
var param2 = $routeParams.param2;
...
}]);
ルーティングは確かにアプリケーションレベルのURL解析のための良い解決策ですが、あなた自身のサービスやコントローラに注入されるように、あなたはもっと低レベルの$location
サービスを使いたいかもしれません:
var paramValue = $location.search().myParam;
この単純な構文はhttp://example.com/path?myParam=paramValue
に対して機能します。ただし、以前にHTML 5モードで$locationProvider
を構成した場合に限ります。
$locationProvider.html5Mode(true);
そうでなければ、もう少し複雑な http://example.com/#!/path?myParam=someValue "Hashbang"構文を見てください。 5互換)も。
NgRouteを使用している場合は、コントローラに$routeParams
を挿入できます。
http://docs.angularjs.org/api/ngRoute/service/$routeParams
Angular-UI-Routerを使用している場合は、$stateParams
を挿入できます。
URLからパラメータを取得するための$ location.search()の使用方法を見つけました
uRLの最初のものuこの例のようにパラメータの前に構文 "#"を置く必要があります。
"http://www.example.com/page#?key=value"
それからあなたのコントローラで$ locationを関数に入れて、$ location.search()を使ってURLパラメータを取得します。
.controller('yourController', ['$scope', function($scope, $location) {
var param1 = $location.search().param1; //Get parameter from URL
}]);
すでに投稿された答えが役に立たなかった場合は、$ location.search()。myParamを試してみてください。 URL付き/ http://example.domain#?myParam = paramValue
function GetURLParameter(parameter) {
var url;
var search;
var parsed;
var count;
var loop;
var searchPhrase;
url = window.location.href;
search = url.indexOf("?");
if (search < 0) {
return "";
}
searchPhrase = parameter + "=";
parsed = url.substr(search+1).split("&");
count = parsed.length;
for(loop=0;loop<count;loop++) {
if (parsed[loop].substr(0,searchPhrase.length)==searchPhrase) {
return decodeURI(parsed[loop].substr(searchPhrase.length));
}
}
return "";
}
RL値を取得する簡単で簡単な方法
First add # to url (e:g - test.html#key=value)
url in browser (https://stackover.....king-angularjs-1-5#?brand=stackoverflow)
var url = window.location.href
(output: url = "https://stackover.....king-angularjs-1-5#?brand=stackoverflow")
url.split('=').pop()
output "stackoverflow"