POST을 사용하여 angularjs 인증을 시도하고 있습니다. 내 코드에 게으른 로딩도 포함됩니다. POST알 수없는 제공 업체 오류 AngularJs
코드가 응용 프로그램에 '권한'팩토리를 삽입하는 데 문제가 있습니다. 내 루트 디렉토리 아래
app.js로 :
(function()
{
var myApp = angular.module('myApp',['ngRoute']);
var roleId = 5;
var permissionList = {};
myApp.config(function($routeProvider, $controllerProvider, $filterProvider, $provide, $compileProvider, $httpProvider)
{
myApp.controllerProvider = $controllerProvider;
myApp.compileProvider = $compileProvider;
myApp.routeProvider = $routeProvider;
myApp.filterProvider = $filterProvider;
myApp.provide = $provide;
$httpProvider.responseInterceptors.push('securityInterceptor');
$routeProvider
.when('/', {
templateUrl:'app/login/login.html',
resolve:{
deps: function($q, $rootScope) {
var deferred = $q.defer();
// Add dependencies here
var dependencies =
[
'app/services/services.js',
'app/directives/directives.js',
'app/login/login.js',
];
$script(dependencies, function()
{
// all dependencies have now been loaded by $script.js so resolve the promise
$rootScope.$apply(function()
{
deferred.resolve();
});
});
return deferred.promise;
}
},
permission: 'login'
});
});
myApp.provider('securityInterceptor', function() {
this.$get = function($location, $q) {
return function(promise) {
return promise.then(null, function(response) {
if(response.status === 403 || response.status === 401) {
$location.path('partials/unauthorized');
}
return $q.reject(response);
});
};
};
});
// Get User Roles and Permissions from server
angular.element(document).ready(function() {
$.get('b1.0/../api/index/user-roles', function(data) {
userRoles = data;
});
$.post('b1.0/../api/index/user-permissions', {roleId:roleId}, function(data) {
permissionList = data;
});
});
myApp.run(function(permissions) {
permissions.setPermissions(permissionList)
});
// Tried this but still not working
/*myApp.run(['permissions', function(permissions){
permissions.setPermissions(permissionList);
}]);*/
})();
appBootstrap.js :
$script(['app/app.js'], function()
{
angular.bootstrap(document, ['myApp']);
});
appMain.js :
var myApp = angular.module('myApp');
myApp.controller('mainAppCtrl', function($scope, $location, permissions) {
$scope.$on('$routeChangeStart', function(scope, next, current) {
var permission = next.$$route.permission;
if(_.isString(permission) && !permissions.hasPermission(permission))
$location.path('/unauthorized');
});
});
services.js :
angular.module('myApp')
.factory('permissions', function ($rootScope) {
var permissionList;
return {
setPermissions: function(permissions) {
permissionList = permissions;
$rootScope.$broadcast('permissionsChanged')
},
hasPermission: function (permission) {
permission = permission.trim();
return _.some(permissionList, function(item) {
if(_.isString(item.Name))
return item.Name.trim() === permission
});
}
};
});
directives.js :
angular.module('myApp').directive('hasPermission', function(permissions) {
return {
link: function(scope, element, attrs) {
if(!_.isString(attrs.hasPermission))
throw "hasPermission value must be a string";
var value = attrs.hasPermission.trim();
var notPermissionFlag = value[0] === '!';
if(notPermissionFlag) {
value = value.slice(1).trim();
}
function toggleVisibilityBasedOnPermission() {
var hasPermission = permissions.hasPermission(value);
if(hasPermission && !notPermissionFlag || !hasPermission && notPermissionFlag)
element.show();
else
element.hide();
}
toggleVisibilityBasedOnPermission();
scope.$on('permissionsChanged', toggleVisibilityBasedOnPermission);
}
};
});
Here 내 업로드 된 파일입니다.
내가 점점 오전 오류이
http://errors.angularjs.org/1.2.13/ $ 인젝터/unpr? P0 = permissionsProvider % 20 % 3C- %의 20permissions이다
사람이 잘못 여기에 무슨 일이 일어나고 있는지 말해 줄 수 ??
업데이트 1 : @Chandermani에 의해 제안 번을 myApp를 선언 한 후 지금이 오류가 너무
http://errors.angularjs.org/1.2.13/ $ 인젝터/nomod P0 =을 myApp이
디 오류 링크로 이동합니까? "이 오류는 $ injector가 필수 종속성을 해결할 수 없기 때문에 발생합니다.이를 수정하려면 종속성이 올바르게 정의되고 철자가 올바른지 확인하십시오 (예 :"오류가 발생한 위치를 지정하지 않고 많은 코드를 제공 했으므로, 문제가 어디 있는지 모르겠습니다. – JeffryHouser
예 재검사했지만 문제가 아님 – VishwaKumar
Chandermani와 관련이 있어야합니다. – VishwaKumar