Пожалуйста, объясните разницу между $routeProvider и $stateProvider в AngularJs.
Это наилучшая практика.
Пожалуйста, объясните разницу между $routeProvider и $stateProvider в AngularJs.
Это наилучшая практика.
Оба выполняют ту же работу, что и для целей маршрутизации в SPA.
URL-адреса контроллеров и представлений (частичные части HTML). Он смотрит $location.url() и пытается сопоставить путь к существующему маршруту определение.
HTML
<div ng-view></div>
Вышеуказанный тег будет отображать шаблон из условия $routeProvider.when(), которое вы упомянули в .config (фаза конфигурации) angular
Ограничения: -
ng-view на странице$routeProvider терпит неудачу. (для этого нам нужно использовать такие директивы, как ng-include, ng-switch, ng-if, ng-show, которые выглядят плохо, чтобы иметь их в SPA)AngularUI Router - это схема маршрутизации для AngularJS, которая позволяет вы можете организовать части вашего интерфейса в конечный автомат. UI-Router организован вокруг состояний, которые могут необязательно иметь маршруты, а также другое поведение.
Несколько и именованные виды
Еще одна замечательная функция - возможность иметь несколько шаблонов ui в шаблоне.
В то время как несколько параллельных представлений являются мощной функцией, вы часто сможете более эффективно управлять своими интерфейсами, вложив свои view s и соединяя эти представления с вложенными состояниями.
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.Дополнительная информация Angular ui-router
Для большей гибкости с различными вложенными представлениями с состояниями, я бы предпочел, чтобы вы пошли за ui-router
 Angular собственный ng-маршрутизатор учитывает URLs во время маршрутизации, UI-Router принимает states в дополнение к URL-адресам.
Государства привязаны к именам, вложенным и параллельным представлениям, что позволяет вам эффективно управлять вашим интерфейсом приложений.
В то время как в ng-маршрутизаторе вы должны быть очень осторожны в отношении URL-адресов при предоставлении ссылок через тег <a href="">, в UI-Router вы должны учитывать только state. Вы предоставляете такие ссылки, как <a ui-sref="">. Обратите внимание, что даже если вы используете <a href=""> в UI-Router, как и в ng-router, он все равно будет работать.
Итак, даже если вы решили изменить свой URL-адрес, ваш state останется таким же, и вам нужно будет изменить URL-адрес только на .config.
В то время как ngRouter можно использовать для создания простых приложений, UI-Router упрощает разработку приложений для сложных приложений. Вот его wiki.