Con respecto a $ location.search, los documentos dicen:
Devuelve la parte de búsqueda (como objeto) de la URL actual cuando se llama sin ningún parámetro.
En mi URL, mi cadena de consulta tiene un parámetro '? Test_user_bLzgB' sin un valor. Además, '$ location.search ()' devuelve un objeto. ¿Cómo obtengo el texto real?
javascript
angularjs
Ian Warburton
fuente
fuente
$location.search()
pero deseo verificar el "objeto" que obtiene cuando lo llama ...Respuestas:
No estoy seguro de si ha cambiado desde que se aceptó la respuesta aceptada, pero es posible.
$location.search()
devolverá un objeto de pares clave-valor, los mismos pares que la cadena de consulta. Una clave que no tiene valor simplemente se almacena en el objeto como verdadera. En este caso, el objeto sería:Puede acceder a este valor directamente con
$location.search().test_user_bLzgB
Ejemplo (con una cadena de consulta más grande): http://fiddle.jshell.net/TheSharpieOne/yHv2p/4/show/?test_user_bLzgB&somethingElse&also&something=Somethingelse
Nota: Debido a los hashes (ya que irá a http://fiddle.jshell.net/#/url , que crearía un nuevo violín), este violín no funcionará en navegadores que no admitan el historial de js (no funcionará en IE <10)
Editar:
como se señaló en los comentarios de @Naresh y @DavidTchepak,
$locationProvider
también debe configurarse correctamente: https://code.angularjs.org/1.2.23/docs/guide/$location#-location-service-configurationfuente
$locationProvider
también debe configurarse correctamente: code.angularjs.org/1.2.23/docs/guide/… (Esto me hizo tropezar. Con suerte, el enlace les ahorrará tiempo a otros).Si solo necesita ver la cadena de consulta como texto, puede usar:
$window.location.search
fuente
$location.search()
devuelve un objeto, que consta de las claves como variables y los valores como su valor. Entonces: si escribe su cadena de consulta así:Fácilmente podría obtener el texto así:
Si no desea usar una clave, valor como? Foo = bar, sugiero usar un hash #test_user_bLzgB,
y llamando
devolvería 'test_user_bLzgB', que son los datos que desea recuperar.
Información adicional:
Si usó el método de cadena de consulta y obtiene un objeto vacío con $ location.search (), probablemente sea porque Angular está usando la estrategia hashbang en lugar de la html5 ... Para que funcione, agregue esta configuración a su módulo
fuente
Primero, haga que el formato de URL sea correcto para obtener la cadena de consulta use #? Q = string que funcione para mí
Inyectar $ location service en el controlador
Entonces la salida debe ser abcd
fuente
también puedes usar esto
fuente
Si
$location.search()
no funciona, asegúrese de tener lo siguiente:1)
html5Mode(true)
está configurado en la configuración del módulo de la aplicación2)
<base href="https://stackoverflow.com/">
está presente en su HTMLReferencias:
fuente
Angular no admite este tipo de cadena de consulta.
Se supone que la parte de consulta de la URL es una
&
secuencia separada de pares clave-valor, por lo que se puede interpretar perfectamente como un objeto.No hay ninguna API para administrar cadenas de consulta que no representan conjuntos de pares clave-valor.
fuente
En mi ejemplo de NodeJS, tengo una URL "localhost: 8080 / Lists / list1.html? X1 = y" que quiero atravesar y adquirir valores.
Para trabajar con $ location.search () para obtener x1 = y, he hecho algunas cosas
mi list1.js tiene
y mi list1.html tiene
Guía: https://code.angularjs.org/1.2.23/docs/guide/$location
fuente
Mi solución es más simple, crear una fábrica e implementarla como una variable. Por ejemplo
fuente