簡體   English   中英

angular.js:15697 錯誤:[$injector:unpr] 未知提供者

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

我正在嘗試一起使用 requireJs 和 AngularJs 。 當我想注入一些工廠時,出現以下錯誤:

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

搜索.js

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

學生查詢.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)
    }
)

圖.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)
})

最后是我的 require-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.jsto 中:

'use strict'

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM