我想知道是否有办法根据用户的权限动态扩展我的角度控制器。
例如,假设我们分别有三个不同的权限级别(Admin,Supervisor,User)和角度控制器
app.controller("myController", ["$scope", function($scope){
$scope.userFunc = function(){....};
$scope.supervisorFunc = function(){....};
$scope.adminFunc = function(){....};
}]);
我想在用户拥有正确权限的情况下添加supervisorFunc和adminFunc。
现在我想添加一个单独的js文件,将其他方法注入控制器,所以如果你是一个Supervisor,你的客户端将收到两个js文件,一个是主myController和另一个将扩展的Supervisor Injector myController的。
一个重要的事情是我不想在服务器端动态生成myController js文件,因为这是不好的做法。
任何想法?
答案 0 :(得分:0)
我喜欢这个想法,我们做同样的事情(有点)。
如果第二组控制器项目没有新要求(指令等),您应该可以这样做:
app.js中的:
var app = angular.module('myModule', ["whatever-directive", "some-service"]);
app.config(['$httpProvider', '$locationProvider', function ($httpProvider, $locationProvider) {
..
..
}]);
..
..
在controllers.js
中function someCtrl($scope, $location, $http) {...}
function someOtherCtrl($scope, $location, $http) {...}
in onlyForYouControllers.js - 仅在需要时添加
function someCtrlOnlyForYou($scope, $location, $http) {...}
就像我写的那样 - 你必须在应用程序中声明需要的内容 - 即使它没有被特定的一组控制器使用。