javascript - Angular 模块延迟实例化

标签 javascript angularjs lazy-loading angularjs-controller angular-bootstrap

我在 window.onload 之后的例程中定义了 Angular 模块,我相信 Angular 在加载窗口之前会查找模块,但我需要确保在触发 Angular 模块之前加载所有资源。

有没有办法,也许是另一个加载事件,比如 DOM 就绪等,我可以 Hook 我的应用程序启动,然后进行 Angular 启动?我的 Angular 模块是一个依赖项,并被另一个库使用。

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>

最佳答案

您想要实现的只是通过延迟加载应用程序,使用angular.bootstrap,然后您应该从html中删除ng-app

标记

<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']);
}

Demo Plunkr

关于javascript - Angular 模块延迟实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31057224/

相关文章:

javascript - 使用动态键对嵌套的对象数组进行排序

javascript - 如何创建具有 getter 和 setter 方法的 Angular 工厂而不遇到竞争条件

javascript - 当 Controller 中有 watch 时, Angular UT 出现问题

entity-framework-4 - 显式加载导航属性

c# - 可以(应该?)Lazy<T> 用作缓存技术吗?

Javascript:如何在后缀增量运算符之前评估比较运算符?

javascript - $.ajax 中的成功不会被执行

javascript - 如何从 IJavaScriptExecutor 获取返回值

javascript - 如何启用/禁用按钮来验证存在 ng-repeat 的表单?

.net - 使用 Ninject 延迟加载