Передача параметра внутри $location.path в Angular

Я просто пытаюсь использовать $location.path() в моем контроллере, но также передаю настраиваемую переменную в качестве параметра. Так что это выглядело бы примерно так, я думаю:

$scope.parameter = 'Foo';

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

Но это не работает. Кто-нибудь знает, как это должно быть сделано в Angular?

Ответ 1

чтобы добавить параметры, вы должны использовать метод $location.search(), чтобы:

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

$location методы являются цепными.

это дает:

/myURL/?param=value

Ответ 2

Другой способ добавить параметр к 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;

Ответ 3

Например, если вам нужно указать в свой 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

Ответ 4

  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

Таким образом, вам не нужно вручную вводить параметры внутри скобок