javascript route AngularJS를 사용하여 URL 매개 변수를 가져 오는 방법




angularjs 강좌 (4)

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에 대한 결과로 test 를 반환합니다. 이것이 올바른 방법입니까?


Answer #1

나는 이것이 오래된 질문이라는 것을 알고있다. 그러나 이것은 희귀 한 Angular 문서를 고려해 볼 때 시간을 좀더 필요로한다. RouteProviderrouteParams 는 갈 길입니다. 라우트는 컨트롤러 / 뷰의 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;
  ...
}]);


Answer #3

라우팅은 실제로 응용 프로그램 수준 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"구문을 좀 더 복잡하지만 이전 브라우저 (HTML 5와 호환되지 않음)로 작업 할 때 이점이 있습니다. 잘.


Answer #4

$ location.search ()를 사용하여 URL에서 매개 변수를 가져 오는 방법을 찾았습니다.

URL에서 먼저이 예제와 같은 매개 변수 앞에 구문 "#"을 넣어야합니다.

"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

}]);




routeparams