1

我正在尝试注入我的服务,但我不断收到unpr错误。我遵循了angularjs文档,但似乎没有解决它。我对这个错误不断出现的原因感到茫然。


我的服务

(function(){ 
'use strict'; 

angular 
    .module('omicron.projects.services') 
    .factory('Projects', Projects); 

Projects.$inject = ['$resource', '$scope']; 

/** 
* 
* @param $resource 
* @constructor 
*/ 
function Projects($resource){ 
    return $resource('/api/projects/:userid', {}, { 
     get: {method: 'GET'}, 
     query: {method: 'GET'}, 
     update: {method: 'PUT'}, 
     save: {method: 'POST'}, 
     delete: {method: 'DELETE'} 
    },{ 
     stripTrailingSlashed: false 
    }); 
} 

})(); 

我的控制器,调用服务

(function() { 
'use strict'; 

angular 
    .module('omicron.projects.controllers') 
    .controller('ProjectController', ProjectController); 

ProjectController.$inject = ['$scope', 'Projects']; 

function ProjectController($scope, Projects) { 
    var vm = this; 

    vm.projects = Projects.get({userid: $scope.user}, function(){ 
     console.log(projects); 
    }); 
} 

})(); 

我的模块定义

/** 
* Created by shahab on 15-09-03. 
*/ 
(function(){ 
'use strict'; 

    angular 
    .module('omicron.projects', [ 
     'omicron.projects.controllers', 
     'omicron.projects.directives', 
     'omicron.projects.services' 
    ]); 


angular 
    .module('omicron.projects.services', ['ngCookies', 'ngResource']); 

angular 
    .module('omicron.projects.controllers', []); 

angular 
    .module('omicron.projects.directives', []); 

})(); 

我的错误:

Error: [$injector:unpr] Unknown provider: $resourceProvider <- $resource <- Projects

回答

2

厂不能访问范围

Projects.$inject = ['$resource', '$scope']; //remove scope from here 

应该

Projects.$inject = ['$resource']; 

另外,你需要确保你加入angular-resource.js库和ngResource模块在你的应用程序主模块omicron.projects

你应该有类似下面你app.js

angular.module('omicron.projects', [ 
    'omicron.projects.services', 
    'omicron.projects.controllers', 
    'omicron.projects.directives', 
    'ngResource' 
]) 
+0

谢谢!那是一个严重的错误。感谢您指出 – artyfrost

+0

@artyfrost很高兴为您提供帮助..谢谢:) –

相关问题