angularjs - udacity - ¿Cuál es la diferencia entre $ state.go(app.location) y $ location.path("app/location")?
why the lean start up (3)
Recientemente comencé a usar el marco iónico, tiene js angulares en él. Para navegar entre pantallas, estaba usando $ location.path y funciona muy bien. Sin embargo, en un ejemplo que descargué, vi que $ state.go se usaba para redirigir a alguna página. Me gustaría saber la diferencia entre los dos.
Gracias @wilver por responderlo. A medida que profundizaba en formas angulosas y aprendidas de estructurar mis proyectos, pude entender mejor estos estados y caminos. Y sí, he encontrado estados mucho mejores que los caminos.
$ state.go, que viene con $stateProvider
, un proveedor de ui-router
, funcionará según los nombres de los estados. La diferencia principal entre los enrutadores y estados previamente incorporados (ahora es necesario incluir ngRoute
) es que "los estados pueden tener estados anidados pero con el enrutador no es posible. Y de repente me di cuenta de que todo el marco iónico es posible debido a este concepto, pude para entender esto mientras se trabaja en una aplicación web angular basada en ngRoute
y la aplicación iónica basada en ui-router.
Ionic funciona con la aplicación como estado básico y todas las demás pantallas definidas como sus estados secundarios. Es por eso que ves app.screen1
, app.screen2
dentro de $stateProvider
en app.js.
Entonces, cuando tienes rutas, usas $location.path("<routeUrl>")
y cuando tienes estados, usas $state.go("<stateName>")
Uso iónica y una de las diferencias que he observado pero que todavía no se ha explicado por qué $location.path
es mucho más lento que $state.go
El servicio $ location se encuentra en el marco angular.js listo para usar y le permite administrar el objeto de ubicación (similar al de javascript puro). El servicio $ state es una parte del módulo ui-router y le permite administrar rutas en un modo avanzado, a través de una administración de vistas de estado de la máquina.
Si usa el enrutador ui, debería preferir usar el servicio $ state para administrar estados / rutas porque el estado abstrae el concepto de ruta y puede cambiar las rutas físicas sin cambiar los estados.
Además de eso, más problemas que podrías tener si corres en modo hashbang , en particular en tus enlaces html. En este caso, es preferible usar ui-sref lugar de ng-href (o simplemente href). En mi opinión, siempre debes pensar en términos de estados en lugar de caminos. Obviamente puedes mezclar los servicios si sabes lo que estás haciendo