$scope.checkbit = undefined;
$scope.showHide = function(permissionrequired){
for(var i=0; i< userpermissions.length; i++){
console.log(userpermissions[i].name);
if(userpermissions[i]=== permissionrequired)
$scope.checkbit = 1;
}
return $scope.checkbit;
}}
$scope.userpermissions
是为当前用户分配的权限数组。
Forexample:
[“创建”,“显示”,“更新”,“删除”]
或
[“创建”,“显示”,“更新”]
或
[“更新”,“显示”]
因此,如果我的当前用户只有[“更新”,“显示”],它不应该显示具有ShowHide('Create')但是如果我在任何一个中有ShowHide('Show') li元素并且如果调用ShowHide的li元素具有'Create'作为所需权限,则工作正常。在这种情况下,它将隐藏需要'Create'权限的元素。但如果我在任何其余的li元素中添加Show as required权限,它就会失败。
我称之为:
<ul class="nav navbar-nav">
<li><a href="#" ng-click="navMode = 'createUser'" ng-show="showHide('Create')" ><strong>Create User</strong></a></li>
<li><a href="#" ng-click="navMode = 'getUser'" ><strong>Get Users</strong></a></li>
<li><a href="#" ng-click="navMode = 'createRole'" ng-show="showHide('Create')" ><strong>Create Role</strong></a></li>
<li><a href="#" ng-click="navMode = 'getRole'"><strong>Get Roles</strong></a></li>
<li><a href="#" ng-click="navMode = 'createPermission'" ng-show="showHide('Create')" ><strong>Create Permission</strong></a></li>
<li><a href="#" ng-click="navMode = 'getPermission'"><strong>Get Permissions</strong></a></li>
</ul>
当我仅使用“创建”或“how”元素时,它工作正常。但是如果我在任何剩余的li元素中使用ShowHide('Show')
,它们都会显示出来。
出现什么问题以及如何解决这个问题?
答案 0 :(得分:1)
将您的功能更改为以下
$scope.showHide = function(permissionrequired){
var checkbit = 0;
for(var i=0; i< userpermissions.length; i++){
console.log(userpermissions[i].name);
if(userpermissions[i]=== permissionrequired)
checkbit = 1;
}
return checkbit;
}}
答案 1 :(得分:0)
您应该更改的第一件事是将.name
添加到您的if语句中:
if(userpermissions[i].name=== permissionrequired)
Plz maken a http://jsfiddle.net/