programing

각도 1 - 현재 URL 매개 변수 가져오기

mbctv 2023. 3. 27. 21:32
반응형

각도 1 - 현재 URL 매개 변수 가져오기

현재 URL에서 데이터를 추출하여 컨트롤러에서 사용하고 싶습니다.예를 들어 다음 URL이 있습니다.

app.dev/module/module/2

추출할 비트:

app.dev/module/:type/:id

Angular에서 이 작업에 도움이 될 만한 것이 있습니까?

다음을 사용하여 URL에서 매개 변수를 가져오려면ngRoute즉, 의존관계로서 앵글 루트js를 어플리케이션에 포함해야 합니다.공식 ngRoute 문서에서 이를 수행하는 방법에 대한 자세한 내용은 다음과 같습니다.

질문의 해결 방법:

// You need to add 'ngRoute' as a dependency in your app
angular.module('ngApp', ['ngRoute'])
    .config(function ($routeProvider, $locationProvider) {
        // configure the routing rules here
        $routeProvider.when('/backend/:type/:id', {
            controller: 'PagesCtrl'
        });

        // enable HTML5mode to disable hashbang urls
        $locationProvider.html5Mode(true);
    })
    .controller('PagesCtrl', function ($routeParams) {
        console.log($routeParams.id, $routeParams.type);
    });

를 유효하게 하지 않는 경우$locationProvider.html5Mode(true);. URL은 해시방을 사용합니다./#/).

라우팅에 대한 자세한 내용은 공식 각 $route API 문서를 참조하십시오.


사이드 노트:이 질문은 ng-Route를 사용하여 이를 실현하는 방법에 대한 답변이지만 라우팅에는 UI 라우터를 사용할 것을 권장합니다.유연성이 향상되고 기능이 향상되었으며 문서도 훌륭하며 각도 조절에 가장 적합한 라우팅 라이브러리로 간주됩니다.

주사할 수도 있고$routeParams컨트롤러에 접속하여 루트가 해결되었을 때 사용된 모든 파라미터에 액세스합니다.

예:

// route was: app.dev/backend/:type/:id

function MyCtrl($scope, $routeParams, $log) {
    // use the params
    $log.info($routeParams.type, $routeParams.id);
};

자세한 내용은 각 $routeParams 문서를 참조하십시오.

다음과 같은 URL을 생성하는 것이 좋습니다.

app.dev/backend?type=surveys&id=2

그런 다음 사용

var type=$location.search().type;
var id=$location.search().id;

컨트롤러에 $location을 삽입합니다.

루트 설정에서는 일반적으로 다음과 같은 루트를 정의합니다.

.when('somewhere/:param1/:param2')

그런 다음 다음을 사용하여 해결 개체 내의 경로를 가져올 수 있습니다.$route.current.params또는 컨트롤러에서$routeParams어느 경우든 파라미터는 루트 매핑을 사용하여 추출됩니다.param1에 의해 액세스 할 수 있다$routeParams.param1컨트롤러에 있습니다.

편집: 또한 매핑이 정확해야 합니다.

/some/folder/:param1

단일 매개 변수와 일치합니다.

/some/folder/:param1/:param2 

두 개의 매개 변수만 일치합니다.

이것은 대부분의 다이내믹서버측 루트와는 조금 다릅니다.예를 들어 NodeJS(Express) 루트 맵핑에서는 X개의 파라미터로1개의 루트만 지정할 수 있습니다.

ex:url/:id

var sample= app.controller('sample', function ($scope, $routeParams) {
  $scope.init = function () {
    var qa_id = $routeParams.qa_id;
  }
});

routeParams 서비스를 삽입하기만 하면 됩니다.

http://docs.angularjs.org/api/ngRoute.$routeParams

언급URL : https://stackoverflow.com/questions/20655877/angular-1-get-current-url-parameters

반응형