根据用户权限向angularJs控制器添加方法
Add method to angularJs controller according the user permissions
我想知道是否有一种方法可以根据用户的权限动态扩展我的角度控制器。
例如,假设我们分别有三个不同的权限级别(Admin、Supervisor、User)和一个角度控制器
app.controller("myController", ["$scope", function($scope){
$scope.userFunc = function(){....};
$scope.supervisorFunc = function(){....};
$scope.adminFunc = function(){....};
}]);
只有当用户拥有正确的权限时,我才想添加supervisorFunc和adminFunc。
- 用户控制器将只包含userFunc
- Supervisor将包含userFunc和supervisorFunc
- Admin将包含所有方法(userFunc、supervisorFun和adminFunc)
现在我想添加一个单独的js文件,它将把额外的方法注入控制器中,所以如果你是一个Supervisor,你的客户端将收到两个js文件:一个是主myController,另一个是扩展myController的Supervisor Injector。
重要的一点是,我不想在服务器端动态生成myController js文件,因为这是不好的做法。
有什么想法吗?
我喜欢这个想法,我们也做同样的事情。
如果第二组控制器项目没有新的要求(指令等),您应该能够做到这一点:
在app.js:中
var app = angular.module('myModule', ["whatever-directive", "some-service"]);
app.config(['$httpProvider', '$locationProvider', function ($httpProvider, $locationProvider) {
..
..
}]);
..
..
在控制器.js 中
function someCtrl($scope, $location, $http) {...}
function someOtherCtrl($scope, $location, $http) {...}
在onlyForYouControllers.js中-只有在需要时才添加
function someCtrlOnlyForYou($scope, $location, $http) {...}
就像我写的那样——你必须声明应用程序中需要什么才能开始——即使它没有被一组特定的控制器使用。
相关文章:
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 堆叠有角度路由器添加控制器
- 在控制器中添加$location依赖项时,ng-click停止激发
- 将变量动态添加到每个控制器的作用域
- 将范围添加到角度种子默认视图控制器时,测试套件现在失败
- 如何在打字稿的控制器中添加 angularjs 服务
- 将控制器添加到 Angular JS 中的选项卡
- 将控制器的功能添加到角度中的特定视图
- 将音量控制器In添加到从隐藏到块显示的切换中
- 如何在angular.js控制器中添加谷歌地图
- 将角度控制器添加到因果报应覆盖(伊斯坦布尔)代码覆盖预处理器
- 如何在angular.js中为http控制器添加作用域
- AngularJS 表达式在将控制器添加到主体时停止工作
- 根据用户权限向angularJs控制器添加方法
- 如何从另一个控制器添加todo
- 如何将控制器添加到指令中
- 如何在Angular JS路由中将多个控制器添加到一个视图中
- Angular-Mocha-当我将多个控制器添加到同一个模块时,测试失败
- 从控制器添加自定义指令
- 不能将控制器添加到约曼生成的angular项目中