Ответы:
Оба выполняют ту же самую работу, поскольку они используются для целей маршрутизации в 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'
});