Ответ 1
чтобы добавить параметры, вы должны использовать метод $location.search()
, чтобы:
$location.path('/myURL/').search({param: 'value'});
$location
методы являются цепными.
это дает:
/myURL/?param=value
Я просто пытаюсь использовать $location.path()
в моем контроллере, но также передаю настраиваемую переменную в качестве параметра. Так что это выглядело бы примерно так, я думаю:
$scope.parameter = 'Foo';
$location.path('/myURL/' + $scope.parameter);
Но это не работает. Кто-нибудь знает, как это должно быть сделано в Angular?
чтобы добавить параметры, вы должны использовать метод $location.search()
, чтобы:
$location.path('/myURL/').search({param: 'value'});
$location
методы являются цепными.
это дает:
/myURL/?param=value
Другой способ добавить параметр к 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;
Например, если вам нужно указать в свой 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
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
Таким образом, вам не нужно вручную вводить параметры внутри скобок