why udacity the steve start founder everything español course changes blog blank angularjs ionic-framework angular-ui-router

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