基于条件的角度模块

时间:2015-09-25 15:25:52

标签: javascript angularjs angularjs-module

有没有办法根据控制器内的条件加载/指定模块?

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

2 个答案:

答案 0 :(得分:1)

在Angular开箱即用中没有直接的方法可以做到这一点,但您可以考虑使用ocLazyLoad module

链接页面上给出的示例显示了如何将它用于您的案例:

myApp.controller("MyCtrl", function($ocLazyLoad) {
    $ocLazyLoad.load('testModule.js');
});

答案 1 :(得分:0)

不幸的是,不,至少开箱即用简单的Jane Angular。在定义该模块后,您无法将更多模块加载到另一个模块中。您需要做的是在定义模块时移动逻辑以有条件地加载模块。

另一个选择是使用ocLazyLoad https://github.com/ocombe/ocLazyLoad工具来延迟加载模块。