我见过很多像这样的话题,但我找不到解决方案。
我收到此错误错误:
$ injector:unpr未知提供商
未知提供商:restaurantsProvider< - restaurants< - restaurantsController
这是我的控制器:
(function () {
'use strict';
angular
.module('myApp')
.controller('restaurantsController', restaurantsController);
restaurantsController.$inject = ['$scope', 'restaurants'];
function restaurantsController($scope, restaurants) {
$scope.restaurants = restaurants.query();
}
})();
和服务文件:
(function () {
'use strict';
var restaurantsService = angular.module('restaurantsService', ['ngResource']);
restaurantsService.factory('restaurantsService', ['$resource', function ($resource) {
return $resource('/api/restaurants', {}, {
query: { method: 'GET', params: {}, isArray: true }
});
}]);
})();
如果它影响某些东西,我正在使用ASP.NET。
答案 0 :(得分:2)
该错误表明您正在尝试注入角度无法了解的内容。我通过您的应用结构看到了一些导致此问题的问题......
您实际上从未声明过您的" myApp"模块,您需要注入restaurantService app。
您的控制员需要一家餐馆'依赖,但该服务实际上被称为“餐馆服务'
我希望app结构看起来像这样:
(function () {
'use strict';
var restaurantsServiceApp = angular.module('restaurantsServiceApp', ['ngResource']);
restaurantsServiceApp.factory('restaurantsService', ['$resource', function ($resource) {
return $resource('/api/restaurants', {}, {
query: { method: 'GET', params: {}, isArray: true }
});
}]);
})();
(function () {
'use strict';
var myApp = angular.module('myApp', ['restaurantsServiceApp']);
myApp.controller('restaurantsController', restaurantsController);
restaurantsController.$inject = ['$scope', 'restaurantsService'];
function restaurantsController($scope, restaurantsService) {
$scope.restaurants = restaurantsService.query();
}
})();
您的serviceApp需要在将其注入其他应用程序之前进行声明。