template sref angularjs angular-ui-router

sref - AngularJS UI-Router: obtenga la URL absoluta del estado con los parámetros



ui-router angularjs (3)

Quería poder cambiar la dirección URL de la dirección sin cambiar el estado, para evitar la devolución. En mi búsqueda, ui-router actualmente no proporciona esto, pero $location.path de anuglar lo hace.

Así que, naturalmente, quería usar $state.get(stateName) para llegar a la URL del estado, de modo que no escriba la URL manualmente.

Tengo dos problemas:

  1. $state.get(stateName) devuelve solo la ruta relativa. ¿Cómo puedo obtener el camino absoluto?
  2. También devuelve la definición del estado, con los parámetros no definidos. ¿Cómo puedo obtener la URL con el parámetro en su lugar?

Por ejemplo, si tengo un estado llamado user.home.view con user.home , tengo mis estados definidos como

''user'': { abstract: true, url: ''^/users/'' }, ''user.home'': { url: '''' }, ''user.home.view'': { url: '':id/'' }

Así que ahora mismo, $state.get(user.home.view).url devuelve :id/ . ¿Cómo puedo obtener la URL completa (es decir, /users/5/ )?


Debe utilizar $state.href() .

  1. Para obtener la URL absoluta puedes usar:

    $state.href(''user.home.view'', {}, {absolute: true});

  2. Para obtener la URL con los parámetros establecidos, debe agregarlos como segundo argumento


Para obtener la URL absoluta sin parámetros, encuentro que necesito pasar inherit: false , por ejemplo:

$state.href(''home'', {}, {absolute: true, inherit: false})

Sin inherit: false recibí todos los parámetros que puedan estar presentes.


Qué pasa :

$state.href($state.current.name, $state.params, {absolute: true})