Ответы:
Оба выполняют ту же самую работу, поскольку они используются для целей маршрутизации в SPA (одностраничное приложение).
URL-адреса контроллеров и представлений (HTML-партиалы). Он отслеживает $ location.url () и пытается сопоставить путь с существующим определением маршрута.
HTML
<div ng-view></div>
Над тегом будет отображаться шаблон из $routeProvider.when()условия, которое вы упомянули в .config(фаза конфигурации) углового
Ограничения:-
ng-viewна странице$routeProviderпроизойдет сбой. (для достижения этой цели, мы должны использовать директивы , как ng-include, ng-switch, ng-if, ng-show, который выглядит плохо , чтобы иметь их в SPA)AngularUI Router - это инфраструктура маршрутизации для AngularJS, которая позволяет вам организовать части вашего интерфейса в конечный автомат. UI-Router организован вокруг состояний, к которым при желании могут быть привязаны маршруты, а также другое поведение.
Множественные и Именованные Представления
Еще одна отличная особенность - возможность иметь несколько пользовательских интерфейсов в шаблоне.
Несмотря на то, что несколько параллельных представлений являются мощной функцией, вы часто сможете более эффективно управлять своими интерфейсами, viewвкладывая свои и объединяя эти представления с вложенными состояниями.
HTML
<div ui-view>
<div ui-view='header'></div>
<div ui-view='content'></div>
<div ui-view='footer'></div>
</div>
Большая часть ui-routerсилы России заключается в том, что он может управлять вложенными состояниями и представлениями.
Pros
ui-viewна одной страницеui-view="some"состояние, просто используя абсолютную маршрутизацию @с именем состояния.@изменения ui-view="some". Это заменит ui-viewвместо того, чтобы проверять, является ли он вложенным или нет.ui-srefдля hrefдинамического создания URL-адреса на основе URLупомянутых в состоянии, а также вы можете указать параметры состояния в jsonформате.Для получения дополнительной информации Угловой UI-маршрутизатор
Для большей гибкости с различными вложенными представлениями с состояниями, я бы предпочел, чтобы вы пошли на ui-router
$stateProvider&$routeProvider
Собственный ng-Router от Angular URLsучитывает при маршрутизации UI-Router statesв дополнение к URL-адресам.
Состояния связаны с именованным, вложенным и параллельным представлениями, что позволяет вам эффективно управлять интерфейсом вашего приложения.
Находясь в ng-router, вы должны быть очень осторожны с URL при предоставлении ссылок через <a href="">тег, в UI-Router вы должны только stateпомнить. Вы предоставляете ссылки, как <a ui-sref="">. Обратите внимание, что даже если вы используете <a href="">в UI-Router, как и в ng-router, он все равно будет работать.
Таким образом, даже если вы когда-нибудь решите изменить свой URL-адрес, stateон останется прежним, и вам нужно будет изменить URL только на .config.
В то время как ngRouter может использоваться для создания простых приложений, UI-Router значительно упрощает разработку сложных приложений. Вот его вики.
$ route: используется для глубоких ссылок URL-адресов на контроллеры и представления (HTML-компоненты) и отслеживает $ location.url () для сопоставления пути с существующим определением маршрута.
Когда мы используем ngRoute, маршрут настраивается с помощью $ routeProvider, а когда мы используем ui-router, маршрут настраивается с помощью $ stateProvider и $ urlRouterProvider.
<div ng-view></div>
$routeProvider
.when('/contact/', {
templateUrl: 'app/views/core/contact/contact.html',
controller: 'ContactCtrl'
});
<div ui-view>
<div ui-view='abc'></div>
<div ui-view='abc'></div>
</div>
$stateProvider
.state("contact", {
url: "/contact/",
templateUrl: '/app/Aisel/Contact/views/contact.html',
controller: 'ContactCtrl'
});