Solución:
ui-router es un módulo de terceros y es muy poderoso. Es compatible con todo lo que puede hacer ngRoute normal, así como con muchas funciones adicionales.
Aquí hay algunas razones comunes por las que se elige ui-router en lugar de ngRoute:
-
ui-router permite vistas anidadas y múltiples vistas con nombre. Esto es muy útil con aplicaciones más grandes donde puede tener páginas que heredan de otras secciones.
-
ui-router le permite tener enlaces de tipo fuerte entre estados basados en nombres de estados. Cambiar la URL en un lugar actualizará todos los enlaces a ese estado cuando construya sus enlaces con
ui-sref
. Muy útil para proyectos más grandes donde las URL pueden cambiar. -
También existe el concepto de decorador que podría usarse para permitir que sus rutas se creen dinámicamente en función de la URL a la que se intenta acceder. Esto podría significar que no necesitará especificar todas sus rutas de antemano.
-
los estados le permiten mapear y acceder a información diferente sobre diferentes estados y puede pasar información fácilmente entre estados a través de
$stateParams
. -
Puede determinar fácilmente si se encuentra en un estado o padre de un estado para ajustar el elemento de la interfaz de usuario (resaltando la navegación del estado actual) dentro de sus plantillas a través de
$state
proporcionado por ui-enrutador que puede exponer configurándolo en$rootScope
sobrerun
.
En esencia, ui-router es ngRouter con más funciones, debajo de las hojas es bastante diferente. Estas características adicionales son muy útiles para aplicaciones más grandes.
Más información:
- Github: https://github.com/angular-ui/ui-router
- Documentación:
- Referencia de API: http://angular-ui.github.io/ui-router/site/#/api
- Guía: https://github.com/angular-ui/ui-router/wiki
- Preguntas frecuentes: https://github.com/angular-ui/ui-router/wiki/Frequency-Asked-Questions
- Aplicación de muestra: http://angular-ui.github.io/ui-router/sample/#/
ngRoute es un módulo desarrollado por el equipo de AngularJS que anteriormente formaba parte del núcleo de AngularJS.
ui-enrutador es un marco que se creó fuera del proyecto AngularJS para mejorar y mejorar las capacidades de enrutamiento.
De la documentación del ui-router:
AngularUI Router es un marco de enrutamiento para AngularJS, que le permite organizar las partes de su interfaz en una máquina de estado. A diferencia del servicio $ route en Angular core, que se organiza en torno a rutas URL, UI-Router se organiza en torno a estados, que opcionalmente pueden tener rutas, así como otros comportamientos adjuntos.
Los estados están vinculados a vistas con nombre, anidadas y paralelas, lo que le permite administrar de manera eficaz la interfaz de su aplicación.
Ninguno de ellos es mejor, tendrás que elegir el más adecuado para tu proyecto.
Sin embargo, si planea tener vistas complejas en su aplicación y le gustaría lidiar con la noción “$ state”. Te recomiendo que elijas ui-router.
ngRoute es un módulo de núcleo angular que es bueno para escenarios básicos. Creo que agregarán funciones más potentes en los próximos lanzamientos.
URL: https://docs.angularjs.org/api/ngRoute
Ui-router es un módulo contribuido que supera los problemas de ngRoute. Vistas principalmente anidadas / complejas.
URL: https://github.com/angular-ui/ui-router
Algunas de las diferencias entre ui-router y ngRoute
http://www.amasik.com/angularjs-ngroute-vs-ui-router/