2015-09-25 65 views
0

有没有基于控制器内部条件来加载/指定模块的方法?基于条件的角度模块

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

正是你说的'负荷modules'是什么意思? – charlietfl

+0

@charlietfl我的意思是指定像ngRoute这样的应用程序模块。在这里,应用程序使用ngRoute,我只是想根据控制器 –

+0

中的条件添加一个模块到应用程序,需要第三方懒惰的加载器,如ocLazyLoad。在'v1.xx'的角度上,没有内建到核心中 – charlietfl

回答

0

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

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

1

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

连结网页上给出的例子展示了如何使用它为您的情况:

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