gpt4 book ai didi

javascript - 根据用户权限向 angularJs Controller 添加方法

转载 作者:行者123 更新时间:2023-11-28 07:50:34 25 4
gpt4 key购买 nike

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

例如,假设我们分别具有三个不同的权限级别(管理员、主管、用户)和一个 Angular Controller

app.controller("myController", ["$scope", function($scope){
$scope.userFunc = function(){....};
$scope.supervisorFunc = function(){....};
$scope.adminFunc = function(){....};
}]);

仅当用户拥有正确的权限时,我才想添加supervisorFunc和adminFunc。

  • 用户 Controller 将仅包含 userFunc
  • Supervisor 将包含 userFunc 和supervisorFunc
  • Admin 将包含所有方法(userFunc、supervisorFun 和 adminFunc)

现在我想添加一个单独的 js 文件,它将额外的方法注入(inject)到 Controller 中,因此,如果您是 Supervisor,您的客户端将收到两个 js 文件,一个是主 myController,另一个是将扩展的 Supervisor 注入(inject)器我的 Controller 。

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

有什么想法吗?

最佳答案

我喜欢这个主意,我们做同样的事情(某种程度上)。

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

在 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) {...}

就像我写的那样 - 您必须声明应用程序开始时需要什么 - 即使它没有被一组特定的 Controller 使用。

关于javascript - 根据用户权限向 angularJs Controller 添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26862253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com