Angular의 $ location.path 내부에 매개 변수 전달


88

$location.path()컨트롤러에서 사용하려고 하지만 사용자 지정 변수를 매개 변수로 전달합니다. 그래서 다음과 같이 보일 것입니다.

$scope.parameter = 'Foo';

$location.path('/myURL/' + $scope.parameter);

그러나 그것은 작동하지 않습니다. 누구나 Angular에서 이것이 어떻게 이루어져야하는지 알고 있습니까?

답변:


183

매개 변수를 추가하려면 다음과 같이 $location.search()메소드 를 사용해야합니다 .

$location.path('/myURL/').search({param: 'value'});

$location메소드는 체인 가능 합니다.

이 농산물 :

/myURL/?param=value

맞춤법, 상부 / 하부 케이스와의 바인딩을 확인
모흐센 dorparasti

URL이 / myURL /? param = value 대신 / myUrl / value처럼 보이도록 변환하는 방법이 있습니까?
AzzyDude

1
.Path ( '/ myURL /'+ value).를 사용할 수 있지만 더 이상 매개 변수라고 부르지 않습니다.
mohsen dorparasti

2
나는 이것을 작동시키기 위해 후행 /을 제거해야했습니다. 이 코드는 작업 카피입니다 $location.path('/myURL').search({param: 'value'});
bodagetta 2014-12-02

38

URL에 매개 변수를 추가하는 또 다른 방법은 다음과 같습니다.

 $location.path('/myURL/'+ param1);

myPage.html에 대한 경로를 정의 할 수 있습니다.

config(['$routeProvider', function ($routeProvider) {
        $routeProvider.when('/myURL/:param1', {
            templateUrl: 'path/myPage.html',
            controller: newController
            });
    }]);

매개 변수는 다음과 같이 newController에서 액세스 할 수 있습니다.

var param1= $routeParams.param1;

1
그 대답은 쿼리 매개 변수 또는 경로 특성을 추가합니까?
Phil

13

예를 들어 URL에 하나 이상의 매개 변수를 입력해야하는 경우 :

$location.path('/path').search({foo: 'valueFoo', baz:'valueBaz'})

귀하의 URL에서

/path?foo=valueFoo&baz=valueBaz

다른 컨트롤러에서 매개 변수를 가져 오려면 :

var urlParams = $location.search();


urlParams.foo will return valueFoo

urlParams.baz will return valueBaz

2
  function pathToSomewhere() {
    $stateParams.name= vm.name; //john
    $stateParams.phone= vm.phone; //1234
    $stateParams.dateOfBirth= getDoB(); //10-10-1990

    $location.path("/somewhere/").search($stateParams);

  };

그 결과 URL이

http://middle-of-nowhere.com/#/somewhere/?name=john&phone=1234&dateOfBirth=10-10-1990

이렇게하면 괄호 안에 매개 변수를 수동으로 입력 할 필요가 없습니다.


이것이 작동하도록 컨트롤러에 $ stateParams를 주입했다고 가정합니다.
FilipeG 2017 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.