我的节点应用程序出现了着名的Unknown provider
错误,无法找出原因。
app.js
var app = angular.module('citigraph', ['addCtrl', 'mygservice', 'stationservice']);
addCtrl.js
var addCtrl = angular.module('addCtrl', ['mygservice', 'rzModule', 'chart.js', 'stationservice']);
addCtrl.controller('addCtrl', function($scope, $http, $rootScope, gservice, stationservice){ ... }
stationservice.js
angular.module('stationservice', []).service('mystationservice', function($http){ ... }
错误详情:
错误:[$ injector:unpr]未知提供者:stationserviceProvider< - stationservice< - addCtrl
答案 0 :(得分:2)
看起来您没有正确使用模块。使用单个模块名称并重用该模块。如果省略第二组参数,则可以按名称再次检索它。
您可以创建多个模块,但这通常是在您希望将多个项目组合在一起作为一项功能时完成的。
app.js
// add common external dependencies to this module to the [] array
var app = angular.module('citigraph', []);
addCtrl.js
// add controller to same module
var app = angular.module('citigraph');
app.controller('addCtrl', ['$scope', '$http', '$rootScope', 'gservice', 'stationservice', function($scope, $http, $rootScope, gservice, stationservice){ ... }]
stationservice.js
// add service to same module
angular.module('citigraph').service('mystationservice', ['$http', function($http){ ... }]
答案 1 :(得分:0)
修改您的代码,如下所示。我认为这里有一些混淆。如果可以将它们组合在一起,为什么还需要为应用程序创建两个模块。
app.js
var app = angular.module('citigraph', []);
addCtrl.js
var app = angular.module('addCtrl');
app.controller('addCtrl', function($scope, $http, $rootScope, gservice, stationservice){ ... }
stationservice.js
angular.module('citigraph').service('mystationservice', function($http){ ... }
请参阅Angular JS官方文档https://docs.angularjs.org/guide/di以获取更多信息。