有没有办法根据控制器内的条件加载/指定模块?
var app = angular.module('app',['ngRoute']);
app.controller("DemoCtrl",["$scope",function($scope){
var a = true;
if(a)
// Load "Yes" module to app
else
// Load "No" module to app
}]);
答案 0 :(得分:1)
在Angular开箱即用中没有直接的方法可以做到这一点,但您可以考虑使用ocLazyLoad module。
链接页面上给出的示例显示了如何将它用于您的案例:
myApp.controller("MyCtrl", function($ocLazyLoad) {
$ocLazyLoad.load('testModule.js');
});
答案 1 :(得分:0)
不幸的是,不,至少开箱即用简单的Jane Angular。在定义该模块后,您无法将更多模块加载到另一个模块中。您需要做的是在定义模块时移动逻辑以有条件地加载模块。
另一个选择是使用ocLazyLoad https://github.com/ocombe/ocLazyLoad工具来延迟加载模块。