stateprovider start example controlleras change javascript angularjs angular-ui query-parameters angular-ui-router

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&param1&param2'', 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