带有ocLazyload的webpack无法加载控制器和模板文件

时间:2018-06-18 11:13:33

标签: javascript angularjs webpack oclazyload uglifyjs-webpack-plugin

var templatePath = require('../templatePath');
var controllerPath = require('../ControllerPath');

$scope.loadNgModules = function(templatePath, controllerPath) {
    var files = [];
    if (templatePath) files.push({ type: 'html', path: templatePath });
    if (controllerPath) files.push({ type: 'js', path: controllerPath});
    if (files.length) return $ocLazyLoad.load(files)
};
当我使用webpack进行缩小时,

ocLazyLoad无效。因为我猜ocLazyLoad只接受模板和控制器的路径,但webpack将模板和控制器捆绑到单个缩小文件中,因此无法加载。

Webpack插件名称: uglifyjs-webpack-plugin'

有没有办法用ocLazyLoad来解决这个问题。 除了考虑路径之外,我可以加载一串模板和控制器文件。

1 个答案:

答案 0 :(得分:0)

据我了解,ocLazyLoad基本上只接受脚本和模板文件的路径

所以我已经通过使用$templateCache

解决了此问题
if (angular.isString(templatePath) && templatePath.length > 0) {
angular.forEach(angular.element(templatePath), function (node) {
    if (node.nodeName === "SCRIPT" && node.type === "text/ng-template") {
        $templateCache.put(node.id, node.innerHTML);
    }
});

}

希望这对某人有帮助:-)