你能在Angular中动态加载模块吗?

时间:2013-10-07 12:31:34

标签: asp.net-mvc angularjs

我有一个角度应用程序,它有两个不同的部分。每个部分属于一种用户。有一些共性,但大多数情况下相当不同。例如:

/receptionist
    - View Diary
    - Answer Phone
    - Make Tea 
/ceo
    - View Diary
    - Announce Earnings
    - Strategize

首席执行官和接待员都需要查看日记的功能。我想要根据登录的人来更改加载的模块(和路由)。

if (user.type === 'receptionist') {
    app = angular.module('receptionistApp', ['diary', 'phone', 'tea']);
else {
    app = angular.module('ceoApp', ['diary', 'earning', 'strategy']);
}

我想这样做是因为有一些重叠,但不是很多。每个应用程序实际上都很大。

我不想在这里实现任何安全性。每个应用程序都有不同类型的用户和角色。这些将通过WebApi得到保护。我只是想避免加载所有模块,而其中45%的模块对其他应用程序不感兴趣。

1 个答案:

答案 0 :(得分:2)

另外,(你可能不需要这个)你可以加载模块even more dynamically,并自己初始化AngularJS,而不是立即加载。您可以删除ng-app指令,并进行手动初始化。

angular.element(document).ready(function() {
    angular.module('myApp', []);
    angular.bootstrap(document, ['myApp']);
});