我已经按照我可以找到的所有说明来修复缩小,例如
var MyController = function(renamed$scope, renamedGreeter) {
...
}
MyController.$inject = ['$scope', 'greeter'];
和
someModule.factory('greeter', ['$window', function(renamed$window) {
...;
}]);
然而棱角仍拒绝工作。它总是抛出错误“Unknown provider:eProvider”
以下是我试图让它工作的两次尝试......任何人都可以帮忙吗?
https://github.com/jemminger/angular-test1
https://github.com/jemminger/angular-test2
他们已经预先编译了资产,并且开发模式已配置为生产,因此您应该能够“跟踪”以查看(不)工作。
答案 0 :(得分:60)
angular.module('itemServices', ['ngResource']).
factory('Item', function($resource){
return $resource('items/:item_id.json', {}, {
query: {method:'GET', params:{ item_id: 'all' }, isArray:true}
});
});
到此:
angular.module('itemServices', ['ngResource']).
factory('Item', ['$resource', function($resource){
return $resource('items/:item_id.json', {}, {
query: {method:'GET', params:{ item_id: 'all' }, isArray:true}
});
}]);
答案 1 :(得分:14)
请记住,在指令中的控制器上也使用DI。花了我几个小时...... CS例子:
错误:
controller: ($scope) ->
$scope.closeModal = ->
ModalService.close()
右:
controller: ["$scope"
($scope) ->
$scope.closeModal = ->
ModalService.close()
]
答案 2 :(得分:6)
确保将DI模式应用于需要在模块中进行注入的 ALL 功能定义。很容易错过一个。如果您正在使用routeProvider,工厂,服务等,则他们都需要应用DI模式。在我发现它们之前,我最终部署了多次:P