angular.js:15697 Error: [$injector:unpr] Unknown provider

angular.js:15697 Error: [$injector:unpr] Unknown provider

我正在尝试同时使用 requireJs 和 AngularJs。 当我想注入一些工厂时,出现以下错误:

angular.js:15697 错误:[$injector:unpr] 未知提供者:StudentQueriesProvider <- StudentQueries <- schoolCtrl

search.js

define([
    'angular',
],function (angular) {
    angular.module('app',[])
        .controller('schoolCtrl',['$scope','StudentQueries'
                        ,function ($scope,studentQueries) {
                $scope.students=studentQueries.queryStudentByName('name');
        }]);
});

studentQueries.js

'use strict'

define([
        'angular'
    ], function (angular) {
    debugger;
        (function (angular) {
            angular.module('studentQueries', ['graphQl'])
                .factory('studentQueries', ['graphQl'], function (graphQl) {
                        let queryStudentByName = function (firstName) {
                         //some logics
                        };

                        return {
                            queryStudentByName: queryStudentByName
                        };
                    }
                );
        })(angular)
    }
)

graph.js

'use strict';

define([
    'angular'
], function (angular) {
    (function (angular) {
        var service = angular.module('graphQl', []);
        service.factory('graphQl', ['$http', function ($http) {
            const sendQuery=(query,variables)=>{
                //some logics
            };
            return {
                sendQuery:sendQuery
            };
        }])
    })(angular)
})

最后是我的要求-config.js

require.config({
    paths: {
        angular: 'bower_components/angular/angular',
        jquery:'bower_components/jquery/dist/jquery'
      
    },
    shim: {
        "angular": {
            deps: [
                'jquery'
            ],
            exports: "angular"
        }
    }
});

require([
    'angular',
    'scripts/controllers/student/search',
    'scripts/services/students/studentQueries',
    'scripts/services/graph'

    ],function () {
        angular.bootstrap(document, ['app']);
    }
);

你试图在将工厂定义为 'studentQueries' 时注入 'StudentQueries' ,因为 Raimond 注释掉的那些注入器和定义似乎都是区分大小写的。

已编辑search.js

define([
    'angular',
],function (angular) {
    angular.module('app',[])
        .controller('schoolCtrl',['$scope','studentQueries'//changed casing here
                        ,function ($scope,studentQueries) {
                $scope.students=studentQueries.queryStudentByName('name');
        }]);
});

我需要添加 app.js 并将其注入到我的 search.js 文件中。

define([
    'angular',
    //backend services
    'scripts/services/students/studentQueries',
     'scripts/services/graph',
    ],function(angular){
   
        console.log('app.js');
        return angular.module('app',[
            'studentQueries',
            'graphQl'
        
        ]);
    }
)

最后我需要将 app.js 添加到 search.js 到:

'use strict'

define([
    'angular',
    'scripts/app'
],function (angular) {
    angular.module('app')
        .controller('schoolCtrl',['$scope','studentQueries'
        //and the rest of logics