Пишу про разработку вообще и в частности про: JavaScript, HTML5, CSS3, AngularJS, ReactJS, Agile.

Асинхронная загрузка контроллеров – AngularJS

Порой необходимо загружать контроллеры асинхронно. Собственно, такая задача может стоять и для всех остальных компонентов (services, directives), однако поговорим сегодня о контроллерах. Вместе с этим стоит отметить, что для всего остального есть подобное решение.

Асинхронная подгрузка подразумевает под собой, что основное приложение было уже загружено и новый контроллер нужно внедрить уже после этого. Ангулар по умолчанию не позволяет это делать. Поэтому имеет смысл подробнее изучить документацию и воспользоваться теми функциями, которые в обычной практике вроде как и не требуются. Давайте рассмотрим все это на примере.

Создадим достаточно простое приложение, состоящие всего из трех страниц:

index.html

Как видите, помимо ангулара я также использую angular-ui-router, однако это не принципиально.

home.html

portfolio.html

Страница portfolio.html использует дополнительный контроллер, который я не указал в index.html – его мы и будем подгружать асинхронно

app.js

mainCtrl.js

portfolioCtrl.js

Вот, собственно, и все, что требуется.

Поделиться:
comments powered by Disqus