首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ocLazyload不加载新模块

ocLazyload不加载新模块
EN

Stack Overflow用户
提问于 2015-04-20 19:29:49
回答 1查看 1.4K关注 0票数 2

我希望用ocLazyload动态地将模块包含到我的应用程序模块中。我的代码是

代码语言:javascript
复制
 angular.module("one",["oc.lazyLoad"])
    .config(function ($ocLazyLoadProvider) {
        $ocLazyLoadProvider.config({
        modules: [
            {
                name: 'directive',
                files: ['loaded.js']
            }
        ],
            debug: true
    })
})
    .run(function ($ocLazyLoad) { $ocLazyLoad.load('directive')});

angular.module("one").controller("first", function ($scope, $ocLazyLoad) {
});

loaded.js

代码语言:javascript
复制
   angular.module("directive", []).directive("blank", function() {
    return {
        restrict: "E",
        template: "<h1>Test</h1>"
    }
});

index.html

代码语言:javascript
复制
<body ng-app="one">
<div ng-controller="first">
    FOO
    <blank></blank>
</div>
</body>

因此,我可以看到,loaded.js已成功加载。但是,模块“指令”不包含在"app“模块的依赖项中,这就是为什么指令”空白“未呈现的原因。如何使ocLazyload包含新加载的模块“指令”到我的主模块中。这是否被支持。我见过的大多数示例都使用了加载文件中的现有模块。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-24 08:41:44

FAQ中的这个问题可能是您要寻找的:https://oclazyload.readme.io/v1.0/docs/faq

我延迟加载了一个指令,但是页面上没有任何变化。

如果指令在延迟加载其定义之前位于DOM中,则需要告诉角,它应该解析DOM以重新编译新指令。要做到这一点,您需要使用$compile:

代码语言:javascript
复制
$ocLazyLoad.load('directive').then(function() {
  $compile(angular.element('body'))($scope);
});

您还可以使用ocLazyLoad指令,它主要是为本例编写的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29756710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档