javascript - ocLazyload 不加载新模块

标签 javascript angularjs module

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

 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) {
});

加载.js

   angular.module("directive", []).directive("blank", function() {
    return {
        restrict: "E",
        template: "<h1>Test</h1>"
    }
});

index.html

<body ng-app="one">
<div ng-controller="first">
    FOO
    <blank></blank>
</div>
</body>

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

最佳答案

常见问题解答中的这个问题可能就是您正在寻找的问题: https://oclazyload.readme.io/v1.0/docs/faq

I lazy-loaded a directive but nothing changed on my page

如果在延迟加载其定义之前指令已在 DOM 中,则需要告诉 Angular 它应该解析 DOM 以重新编译新指令。为此,您需要使用 $compile :

$ocLazyLoad.load('directive').then(function() {
  $compile(angular.element('body'))($scope);
});

您还可以使用 ocLazyLoad 指令,它主要是针对这种情况编写的。

关于javascript - ocLazyload 不加载新模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29756710/

相关文章:

c# - 获取 C# dll 进程模块

asp.net - 模块化软件设计

javascript - 如何强制重新挂载 React 组件?

javascript - 如何将文本与居中文本的左侧对齐?

javascript - 使用 Node、express 和 vanilla JS 进行 POST Ajax 调用

html - 如何在 div 中使用 ion-tabs

javascript - 如何访问javascript数组包含对象中的responsedata

angularjs - 带有 nvd3/d3 的多条形图仅显示 x 轴上每隔一个刻度的标签。我怎样才能让他们全部出现?

html - 为 ui-select 的每个选项添加不同的 CSS

python - 运行器中的 salt-key 命令