AngularJSを使用してURLパラメータを取得する方法 質問する

AngularJSを使用してURLパラメータを取得する方法 質問する

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>

ここで変数locloc1両方が返されるテスト上記URLの結果として、これが正しい方法でしょうか?

ベストアンサー1

これは古い質問だとはわかっていますが、Angularのドキュメントが乏しいため、これを整理するのに時間がかかりました。ルートプロバイダーそしてルートパラメータこれが正しい方法です。ルートは URL をコントローラー/ビューに接続し、routeParams をコントローラーに渡すことができます。

チェックしてください角度シードプロジェクト。app.js 内にルート プロバイダーの例があります。パラメータを使用するには、次のように追加するだけです。

$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 でパラメータを使用できます: "http://www.example.com/view1/param1/param2

おすすめ記事