воскресенье, 19 января 2014 г.

AngularJS + Turbolinks. Bootstrapping. Ручное подключение приложений.

AngularJS автоматически инициализирует и настраивает приложение, найденное с помощью директивы ng-app.

Бывают случаи, что автоматических подключения и настройки Angular приложения не хватает. Например, при использовании AngularJS совместно с Ruby On Rails Turbolinks при переходе на новую ссылку приложение необходимо перенастроить, что не происходит автоматически.

Для этого:

1) Уберите директиву ng-app из верстки вашего приложения:

<div ng-app="app"></div>

2)  Вместо ng-app обозначим наше приложение обыкновенным id:

<div id="app">Контент</div>

3) Инициализация приложения:
Инициализация приложения занимает всего одну строчку кода. Можно было бы сделать ее в $(document).ready(), но в случае с Turbolinks такой фокус не прокатит, так как событие ready срабатывает только при первом посещении приложения. Для этого предусмотрено специальное событие page:load:

    $(document).on('ready page:load', function()
    {
        angular.bootstrap(document.getElementById('app'), ['App']);
    });

4) Все готово. Можно обратиться к приложению в коде:

    var app = angular.module("App", []);

С наилучшими пожеланиями, Ваш покорный слуга, Петюнчик)

Комментариев нет:

Отправить комментарий