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


ocLazyLoad不起作用当我使用webpack进行缩小时。因为我猜ocLazyLoad只接受模板和控制器的路径,但是webpack将模板和控制器都捆绑到单个缩小的文件中,因此无法加载。

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

有什么方法可以使用ocLazyLoad解决此问题。除了考虑路径外,是否可以加载模板和控制器文件的字符串?

最佳答案

根据我的理解,基本上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);
    }
});


}

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

09-25 16:20