ocLazyload 不加载新模块
ocLazyload does not load new modules
我想使用 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) {
});
loaded.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 已成功加载。但是,模块 "directive" 未包含在 "app" 模块的依赖项中,这就是指令 "blank" 未呈现的原因。我如何使 ocLazyload 将新加载的模块 "directive" 包含到我的主模块中。这个支持吗。我见过的大多数示例都在加载的文件中使用了现有模块。
FAQ 中的这个问题可能就是您要查找的问题:
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 指令,它主要是为这种情况编写的。
我想使用 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) {
});
loaded.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 已成功加载。但是,模块 "directive" 未包含在 "app" 模块的依赖项中,这就是指令 "blank" 未呈现的原因。我如何使 ocLazyload 将新加载的模块 "directive" 包含到我的主模块中。这个支持吗。我见过的大多数示例都在加载的文件中使用了现有模块。
FAQ 中的这个问题可能就是您要查找的问题: 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 指令,它主要是为这种情况编写的。