Reputation: 1101
$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
is an array of assigned permissions to the current user.
Forexample:
["Create", "Show", "Update", "Delete"]
or
["Create", "Show", "Update"]
or
["Update", "Show"]
So, in case my current user had only ["Update","Show"], It should not show ones with ShowHide('Create') but it does if I have ShowHide('Show') in any of the li elements and worked just fine if the li elements that called ShowHide has 'Create' as the required permission.In that case it would hide elements that required 'Create' permission. But it fails if I add Show as required permission in any of the rest li elements.
I call it like this:
<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>
It works fine when I use only 'Create' or'Show'in li elements. But all of them show up if I use ShowHide('Show')
in any of the remaining li elements.
What seems wrong and how do I fix this?
Upvotes: 1
Views: 854
Reputation: 1835
The first thing you should probably change is to add .name
to your if statement:
if(userpermissions[i].name=== permissionrequired)
Plz maken a http://jsfiddle.net/
Upvotes: 0
Reputation: 4713
change your function to following
$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;
}}
Upvotes: 1