javascript - start - ¿Cómo extraer parámetros de consulta con ui-router para AngularJS?
ui-router params (5)
A menos que sea vinculante para los parámetros de consulta (consulte la documentación), no puede acceder a ellos directamente a través de $state
o $stateParams
. Use el servicio $location
.
EDITAR: según los documentos , si desea capturar parámetros de consulta en $stateParams
, puede agregar un ?
a su url
, y nombre cada parámetro de consulta, separado por &
, es decir, url: "/foo?bar&baz"
.
¿Cómo extraigo los parámetros de consulta usando ui-router para AngularJS?
En el propio servicio de $location
AngularJS lo hice:
($ location.search ()). uid
para extraer el parámetro uid de una URL. ¿Cuál es el código correspondiente para ui-router?
Consulte la sección de parámetros de consulta de la documentación de enrutamiento de URL .
También puede especificar parámetros como parámetros de consulta, siguiendo un ''?'':
url: "/contacts?myParam" // will match to url of "/contacts?myParam=value"
Para este ejemplo, si la url es /contacts?myParam=value
entonces el valor de $state.params
será:
{ myParam: ''value'' }
Puede obtenerlo desde $ stateParams, pero en ese caso también debe declarar la variable de consulta en la ruta.
declarar en ruta como -
url: ''/path?name''
para obtener el nombre en el controlador, inserte $ stateParams, y use like -
$stateParams.name
También necesita definir los parámetros de consulta en $ stateProvider, por ejemplo
state(''new-qs'', {
url: ''/new?portfolioId¶m1¶m2'',
templateUrl: ''new.html'',
controller: function($scope, $stateParams) {
$scope.portfolioId = $stateParams.portfolioId;
$scope.param1 = $stateParams.param1;
$scope.param2 = $stateParams.param2;
}
})
como lo explica benfoster.io
ui-router no diferencia entre diferentes tipos de parámetros en una url como lo hace el servicio $ location.
En sus controladores puede usar el servicio $ stateParams para obtener acceso a todos los diferentes tipos de parámetros en su url.
a continuación se muestra un ejemplo de la wiki de ui-router:
// Then you navigated your browser to:
''/users/123/details/default/0?from=there&to=here''
// Your $stateParams object would be
{ id:''123'', type:''default'', repeat:''0'', from:''there'', to:''here'' }
Entonces, en su caso, para encontrar el parámetro uid, simplemente use:
$scope.uid = $stateParams.uid