ngRoute - это модуль, созданный командой Angular, который обеспечивает базовые функциональные возможности маршрутизации на стороне клиента. Этот модуль обеспечивает довольно мощную основу для маршрутизации, и его можно довольно легко создать, чтобы обеспечить надежную функциональность маршрутизации, как показано в этом сообщении в блоге (обязательно прочитайте раздел комментариев между Уордом Беллом и Беном Наделем, автором - они являются пара угловых плюсов)
ui-router смещает фокус с URL-ориентированных маршрутов на «состояния» приложения, которые могут отражаться или не отражаться в URL.
Основные функции, добавленные ui-router, - это вложенные состояния и именованные представления.
Вложенные состояния позволяют вам разделить логику контроллера для различных частей приложения. Очень простым примером этого может быть приложение с первичной навигацией вверху, вторичным навигационным списком слева и контентом справа. Без вложенных состояний один контроллер обычно должен обрабатывать логику отображения для вторичной навигации, а также контент. Вложенная маршрутизация позволяет разделить эти проблемы.
Именованные представления - еще одна дополнительная функция ui-router. С помощью ngRoute вы можете иметь только одну директиву ngView на странице, тогда как с помощью именованных представлений в ui-router вы можете указать несколько директив ui-view, и тогда каждое состояние может влиять на шаблон и контроллер представлений имен. Очень простым примером этого было бы иметь основное содержимое вашего приложения в качестве основного представления, а затем также иметь панель нижнего колонтитула, которая будет отдельным представлением пользовательского интерфейса. В этом случае контроллер нижнего колонтитула больше не должен прослушивать изменения состояния / маршрута.
В этом эпизоде подкастов можно найти хорошее сравнение ngRoute и ui-router .
Просто, чтобы сделать вещи более запутанными, следите за новым «официальным» модулем маршрутизации, который команда Angular планирует выпустить для версий 1.5 и 2.0 Angular. Это заменит модуль ngRoute. Вот текущая документация для нового модуля Router - она довольно редкая на момент публикации, поскольку реализация еще не завершена. Смотрите здесь больше новостей о том, когда этот модуль будет фактически освобожден.