Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据用户权限向angularJs控制器添加方法_Javascript_Angularjs - Fatal编程技术网

Javascript 根据用户权限向angularJs控制器添加方法

Javascript 根据用户权限向angularJs控制器添加方法,javascript,angularjs,Javascript,Angularjs,我想知道是否有一种方法可以根据用户的权限动态扩展我的angular controller 例如,假设我们有三个不同的权限级别(管理员、主管、用户)和一个角度控制器 app.controller("myController", ["$scope", function($scope){ $scope.userFunc = function(){....}; $scope.supervisorFunc = function(){....}; $scope.adminFunc = fu

我想知道是否有一种方法可以根据用户的权限动态扩展我的angular controller

例如,假设我们有三个不同的权限级别(管理员、主管、用户)和一个角度控制器

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文件,该文件将向控制器中注入额外的方法,因此如果您是主管,您的客户端将收到两个js文件,一个是主myController,另一个是扩展myController的主管注入器

重要的一点是,我不想在服务器端动态生成myController js文件,因为这是一种不好的做法


有什么想法吗?

我喜欢这个想法,我们也会做同样的事情

如果第二组控制器项没有新的要求(指令等),您应该能够执行以下操作:

在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) {...}
仅在onlyForYouControllers.js中-仅在需要时添加

function someCtrlOnlyForYou($scope, $location, $http) {...}

就像我写的那样——你必须声明应用程序中需要什么——即使它没有被一组特定的控制器使用。

你能解释一下你打算如何添加权限吗。这将有助于更好地理解您的问题。@ashfaq.p基本上,权限存储在会话(服务器端)中,我会相应地向html添加js文件引用。这是个好主意,但我想扩展主控制器的$scope,以便注入的方法能够像任何其他方法一样使用$scope