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
我正在尝试同时使用 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