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);
}
});
}
希望这对某人有帮助:-)