AngularJS基于角色的导航
AngularJS Role Based Navigation
我正在使用angular构建一个小型web应用程序。我正在尝试设置基于角色的导航。似乎在页面加载时没有调用isAdmin函数,因为我只能看到foo锚标记
HTML
<body ng-controller='AccountController'>
<nav class="navbar navbar-default">
<ul>
<li><a href='google.com'>foo</a></li>
<li ng-if="isAdmin()"><a href='google.com'>bar</a></li>
</ul>
</nav>
</body>
账户管理员
var app = angular.module('appControllers', []);
app.controller = angular.controller('AccountController', ['$scope',
function($scope, $http) {
$scope.isAdmin = function() {
return true; //Just as a test to make sure it works
}
}]);
理想情况下,这将击中一个将返回管理员状态的web服务,但目前我想让它发挥作用。
感谢您提前提供的帮助,
Andres
在您的示例中,您需要移除大括号才能使其工作。但我通常使用自定义指令使其工作。示例:
<div class="somediv" show-for-role="ROLE_A,ROLE_B"></div>
如果你的用户有这些角色,你可以管理它
appModule.directive('manageAccess', ['someState', function (appState) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var user = someState.currentUser;
scope.$watch(someState.watchCurrentUser, function(n,o){
if (n === o){
return;
}
hideShow(element,attrs,n);
});
hideShow(element,attrs,user);
}
}
var hideShow = function(element,attrs,user){
element.hide();
if (user) {
var role = attrs.showForRole;
if (role){
role.split(',').forEach(function(it){
if (it == user.role){
element.show();
}
})
}
}};
尝试删除'isAdmin'之后的额外'[()',如下所示:
function($scope, $http) {
$scope.isAdmin = function() {
return true; //Just as a test to make sure it works
}
}
希望它能帮助。。。
相关文章:
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- angular 1.5应用程序中的导航栏
- 无法从jquery Mobile导航栏重定向到另一个页面
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 导航到特定事件的另一个变量页面
- MVC 3页面导航和使用javascript传递参数
- 如何在react js中从一个页面导航到另一个页面
- 导航栏没有调整到浏览器屏幕的大小
- 显示放大镜弹出窗口时隐藏导航内容
- DataTable按下键选择扩展/导航
- 正在检测导航到<a name=“;最新主题”></a>
- 带有url的单页网站导航
- 父页面的角度路由器导航高亮显示
- 如何正确编程jQuery动画与平滑(导航栏)
- 动态更改'汉堡包'导航取决于BG图像
- 使用导航属性创建Kendo UI网格模型的问题
- 逃脱了单一角色的介绍人,而不是实际角色
- Flexslider导航按钮在悬停时不可见,带有橙色框
- AngularJS基于角色的导航
- Angular 2基于角色的相同路径导航