我正在寫一個角度js工廠方法的權限函數,它檢查用戶角色。如果用戶對象有這樣的角色,那麼結果應該是true,否則它應該返回false。 我的用戶對象是:如何檢查數組中的任何值是否存在於角度js中的另一個數組中?
administrator:true
company_admin:true
registered:true
manager:true
contact:"987654321" email:"[email protected]" name:"Anand"
而在應用模型廠我的權限功能是:
$appModel.checkPermission:function($role, $requireAll) {
var data = $rootScope.authUser;
if (angular.isArray($role)) {
angular.forEach($role, function (value, key) {
var hasRole = $appModel.checkPermission(value); //Recursive Function
if (hasRole && !$requireAll) {
return true;
} else if (!hasRole && $requireAll) {
return false;
}
});
return $requireAll;
} else {
if (data.hasOwnProperty($role) && data[$role])
return true;
}
return false;
}
有以下這我檢查情況: 如果有多個在'required all'條件中將數組作用於該數組,然後檢查用戶對象中存在多個角色並返回true,否則返回false。
$result= $appModel.checkPermission([registered, company_admin], true);
2.如果有數組中的多個角色,然後檢查這些多重角色出現在用戶對象,如果任何作用得到匹配,則返回true,否則返回false。
$result= $appModel.checkPermission([administrator, company_admin,manager,agent], false);
如果有數組中的一個角色,然後檢查角色存在於用戶對象,如果那個角色得到匹配,則返回true,否則返回false。
$result= $appModel.checkPermission(register, false);
上面的代碼運行良好的單一角色檢查,但在多角色與檢查案「所需的所有」或不「所需的所有」條件下,它不能正常工作並返回false。
另外,你的最後一行'如果(data.hasOwnProperty(角色)&&數據[作用])'將如果角色不存在失敗。我已通過返回有條件檢查解決此問題 – user2340824
感謝兄弟!它工作得非常好。自從最近兩天以來,我對它的處理非常忙碌。你爲我節省了很多時間。萬分感謝。 @ user2340824 – Hemant
樂於助人,真高興它的工作! – user2340824