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
ambos devuelven la prueba como resultado de la URL anterior. ¿Es esta la forma correcta?
javascript
angularjs
routeparams
praveenpds
fuente
fuente
Respuestas:
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 routeParams se pueden pasar al controlador.
Echa un vistazo al proyecto de semillas Angular . Dentro de app.js encontrarás un ejemplo para el proveedor de ruta. Para usar parámetros, simplemente agréguelos de esta manera:
Luego, en su controlador, inyecte $ routeParams:
Con este enfoque, puede usar parámetros con una URL como: " http://www.example.com/view1/param1/param2 "
fuente
});
debería ser}]);
/view/1/2?other=12
con$routeParams.other
Si bien el enrutamiento es una buena solución para el análisis de URL de nivel de aplicación, es posible que desee utilizar el servicio de más bajo nivel
$location
, como se inyecta en su propio servicio o controlador:Esta sintaxis simple funcionará
http://example.com/path?myParam=paramValue
. Sin embargo, solo si configuró el$locationProvider
en el modo HTML 5 antes: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.
fuente
<base href="http://example.com/en/" />
etiqueta en suindex.html
..config(['$locationProvider', function($locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: false }); }])
$locationProvider
para que esto funcione.http://example.com/path#?someKey=someVal
, entonces$location.search().someKey // => 'someVal'
Si está usando ngRoute, puede inyectar
$routeParams
en su controladorhttp://docs.angularjs.org/api/ngRoute/service/$routeParams
Si está utilizando enrutador angular-ui, puede inyectar
$stateParams
https://github.com/angular-ui/ui-router/wiki/URL-Routing
fuente
$stateParams
mostrar los parámetros de consulta, tuve que especificarlos al definir los estados, como se muestra en github.com/angular-ui/ui-router/wiki/…Encontré una solución para usar $ location.search () para obtener el parámetro de la URL
primero en la URL, necesita poner la sintaxis "#" antes del parámetro como este ejemplo
"http://www.example.com/page#?key=value"
y luego en su controlador, ponga $ location en función y use $ location.search () para obtener el parámetro URL para
fuente
Si las respuestas ya publicadas no ayudaron, puede intentar con $ location.search (). MyParam; con URL http: //example.domain#? myParam = paramValue
fuente
fuente
Manera simple y fácil de obtener el valor de la URL
fuente
Cuando se usa angularjs con express
En mi ejemplo, estaba usando angularjs con express haciendo el enrutamiento, por lo que usar $ routeParams podría estropear mi enrutamiento. Usé el siguiente código para obtener lo que esperaba:
Esto recibe una plantilla de URL y la ruta de la ubicación dada. Lo acabo de llamar con:
Poniendo todo junto, mi controlador es:
El resultado será:
Espero que esto ayude a alguien por ahí!
fuente