javascript - pasar - Cómo obtener los parámetros de url usando AngularJS
pasar parametros por url angular 6 (4)
Código fuente 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>
Código fuente 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>
Aquí las variables loc
y loc1
ambas devuelven la prueba como resultado de la URL anterior. ¿Es esta la manera correcta?
Sé que esta es una vieja pregunta, pero me tomó algo de tiempo resolver esto dada la escasa documentación angular. El RouteProvider y routeParams es el camino a seguir. La ruta conecta la URL a su Controlador / Vista y los parámetros de ruta se pueden pasar al controlador.
Vea el proyecto de semillas Angular . Dentro de la aplicación.js encontrarás un ejemplo para el proveedor de la ruta. Para usar params simplemente añádalos así:
$routeProvider.when(''/view1/:param1/:param2'', {
templateUrl: ''partials/partial1.html'',
controller: ''MyCtrl1''
});
Luego, en su controlador, inyecte $ routeParams:
.controller(''MyCtrl1'', [''$scope'',''$routeParams'', function($scope, $routeParams) {
var param1 = $routeParams.param1;
var param2 = $routeParams.param2;
...
}]);
Si bien el enrutamiento es realmente una buena solución para el análisis de URL a nivel de aplicación, es posible que desee utilizar el servicio $location
nivel $location
, tal como se lo inyectó en su propio servicio o controlador:
var paramValue = $location.search().myParam;
Esta sintaxis simple funcionará para http://example.com/path?myParam=paramValue
. Sin embargo, solo si configuró $locationProvider
en el modo HTML 5 antes de:
$locationProvider.html5Mode(true);
De lo contrario, eche un vistazo a la sintaxis " http://example.com/#!/path?myParam=someValue " Hashbang "que es un poco más complicada, pero tiene la ventaja de trabajar en navegadores antiguos (no compatibles con HTML 5) como bien.
Si está usando ngRoute, puede inyectar $routeParams
en su controlador
http://docs.angularjs.org/api/ngRoute/service/$routeParams
Si está usando angular-ui-router, puede inyectar $stateParams
Si las respuestas ya publicadas no ayudaron, se puede intentar con $ location.search (). MyParam; con las URL http: //example.domain#? myParam = paramValue