Отложенное создание модуля Angular

У меня есть угловой модуль, определенный в подпрограмме после window.onload, я считаю, что angular ищет модуль до загрузки окна, но мне нужно убедиться, что все мои активы загружены, прежде чем я запускаю угловой модуль.

Есть ли способ, может быть, другое событие загрузки, такое как DOM ready и т. Д., Чтобы я мог перехватить запуск моего приложения, а затем угловой запуск? Мой угловой модуль является зависимым и используется другой библиотекой.

window.onload = function() {
    angular.module("nav", [])
        .controller("NavController", function() {
        });
}

<nav class="state_2" ng-app="nav">
        <ul ng-controller="NavController">
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </nav>

person user2727195    schedule 25.06.2015    source источник


Ответы (2)


Вы хотите добиться этого, просто выполнив ленивую загрузку приложения, используя angular.bootstrap, тогда вы должны удалить ng-app из html.

Разметка

<nav class="state_2">
  <ul ng-controller="NavController">
    {{test}}
    <li>1</li>
    <li>2</li>
    <li>3</li>
  </ul>
</nav>

Код

window.onload = function() {
  angular.module("nav", [])
    .controller("NavController", function($scope) {
      $scope.test= '13123'
    });
    angular.bootstrap(document, ['nav']);
}

Демонстрационный план

person Pankaj Parkar    schedule 25.06.2015
comment
@user2727195 user2727195 тебе помогло? - person Pankaj Parkar; 19.07.2015

Размещение всех ваших скриптов под DOM и перед закрытием тега body обеспечит запуск скриптов после загрузки DOM.

См. это отличное объяснение: JavaScript-эквивалент $.ready() jQuery, как вызывать функцию, когда страница/дом готов для этого

person yvesmancera    schedule 25.06.2015