Маршрутизация в Angular JS с использованием Angular UI Router
AngularJS - это фреймворк для интерфейсных веб-приложений, основанный на JavaScript и поддерживаемый Google. AngularJS интерпретирует атрибуты HTML как директивы для привязки компонентов ввода / вывода к модели, представленной стандартными переменными JavaScript.
Предварительные условия:
- HTML
- CSS
- JavaScript
- AngularJS
Angular-UI-Router - это модуль AngularJS, используемый для создания маршрутов для приложений AngularJS. Маршруты являются важной частью одностраничных приложений (SPA), а также обычных приложений, а Angular-UI-Router обеспечивает легкое создание и использование маршрутов в AngularJS.
Angular-UI-Router имеет метод stateProvider, который используется для создания маршрутов / состояний в приложении. Поставщик состояний принимает имя состояния и конфигурации состояния в качестве параметров.
Синтаксис:
$ stateProvider .state ('StateName', { url: 'Шаблон URL для этого штата', шаблон: "HTML-контент", controller: «Имя контроллера для этого состояния» });
Вместо шаблона можно использовать templateUrl и указать путь к HTML-файлу, который нужно отобразить для состояния.
Пример:$ stateProvider .state ('Дом', { url: '/ home', templateUrl: "home.html", контроллер: "HomeCtrl" });
Простой проект для навигации между маршрутами, демонстрирующий использование модуля Angular-UI-Router.
Предварительные требования: Node.js и npmЗапустить и установить модуль узла http-server для размещения демонстрационного приложения.
Шаги для выполнения операции:
1. Создайте структуру каталогов, как показано ниже:routingDemo --app.js --index.html --nav.html
2. Создайте файл nav.html, как показано ниже. Этот файл состоит из заголовка панели навигации и ее содержимого.
3. Создайте файл index.html, как показано ниже. Все необходимые зависимости включены в этот файл вместе с файлом nav.html и определением ui-view, в котором будет отображаться содержимое различных маршрутов.
Объяснение:
- Все зависимости включаются через CDN в тег заголовка.
- файл nav.html включается на страницу index.html в теге body
- Последний раздел body определяет div ui-view, в котором будет отображаться содержимое различных маршрутов.
Примечание. Если это не сработает, замените второй и третий скрипты на следующие:
<script src = "angular.min.js"> </script> <скрипт src = " https://unpkg.com/@uirouter/angularjs@1.0.7/release/angular-ui-router.min.js "> </script>
4. Создайте файл app.js, как показано ниже. Это файл приложения с информацией о маршрутах и действиями, которые должны выполняться через контроллер.
// declares application module with name "myApp"
// inject ui.router dependency
var
app = angular.module(
'myApp'
, [
"ui.router"
]);
// define route configurations inside app.config
// injecting dependencies
app.config(
function
($stateProvider, $locationProvider,
$urlRouterProvider) {
// creating routes or states
$stateProvider
.state(
'Home'
, {
url :
'/home'
,
template :
"<h1>Home Page</h1>"
,
controller :
"HomeCtrl"
})
.state(
'Login'
, {
url :
'/login'
,
template :
"<h1>Login Page</h1>"
,
controller :
"LoginCtrl"
})
.state(
'Signup'
, {
url :
'/signup'
,
template :
"<h1>Signup Page</h1>"
,
controller :
"SignupCtrl"
});
// Redirect to home page if url does not
// matches any of the three mentioned above
$urlRouterProvider.otherwise(
"/home"
);
});
// create empty controllers for the states as we are
// not doing anything but just displaying message
app.controller(
'MainCtrl'
,
function
() {});
app.controller(
'HomeCtrl'
,
function
() {});
app.controller(
'LoginCtrl'
,
function
() {});
app.controller(
'SignupCtrl'
,
function
() {});
5. Чтобы запустить вышеуказанное демонстрационное приложение в браузере, установите модуль узла http-server . Для установки модуля http-server используйте следующую команду:
npm установить http-сервер -g
6. После установки:
–Из папки routingDemo выполните следующую команду:http-сервер
Вышеупомянутая команда разместит демонстрационное приложение на порту 8080. Доступ к приложению можно получить, используя ссылку ниже:
локальный: 8080 /
7. Если к этому приложению получить доступ через браузер, результат будет следующим:
8. После нажатия на вкладку « Вход в систему» на панели навигации вывод будет выглядеть следующим образом:
9. Щелкнув вкладку « Регистрация » на панели навигации , вы увидите результат, как показано ниже:
В этом примере приложения созданы три маршрута: « Домой» , « Вход в систему» и « Регистрация».
Приложения:
- Маршруты важны для одностраничных приложений, поскольку они предоставляют различные функции приложению на одной и той же странице.
- Создавать маршруты и управлять ими легко с помощью модуля angular-ui-router.
Использованная литература:
- https://github.com/angular-ui/ui-router/wiki/quick-reference
- https://ui-router.github.io/ng1/docs/1.0.0-beta.1/classes/state.stateprovider.html
- https://en.wikipedia.org/wiki/AngularJS