jem*_*ger 22 production assets ruby-on-rails minify angularjs
我已经按照我可以找到的所有说明来修复缩小,例如
var MyController = function(renamed$scope, renamedGreeter) {
...
}
MyController.$inject = ['$scope', 'greeter'];
Run Code Online (Sandbox Code Playgroud)
和
someModule.factory('greeter', ['$window', function(renamed$window) {
...;
}]);
Run Code Online (Sandbox Code Playgroud)
但棱角分明拒绝继续工作.它总是抛出错误"Unknown provider:eProvider"
以下是我试图让它运作的两次尝试......任何人都可以帮忙吗?
https://github.com/jemminger/angular-test1
https://github.com/jemminger/angular-test2
他们已经预先编译了资产并且开发模式被配置为用作生产,因此您应该能够"使用"来查看(不)工作.
jem*_*ger 60
找到了!他们从未说过将注射修复应用于服务......解决方案是改变这个:
angular.module('itemServices', ['ngResource']).
factory('Item', function($resource){
return $resource('items/:item_id.json', {}, {
query: {method:'GET', params:{ item_id: 'all' }, isArray:true}
});
});
Run Code Online (Sandbox Code Playgroud)
对此:
angular.module('itemServices', ['ngResource']).
factory('Item', ['$resource', function($resource){
return $resource('items/:item_id.json', {}, {
query: {method:'GET', params:{ item_id: 'all' }, isArray:true}
});
}]);
Run Code Online (Sandbox Code Playgroud)
小智 14
请记住,在指令中的控制器上也使用DI.花了我几个小时...... CS的例子:
错误:
controller: ($scope) ->
$scope.closeModal = ->
ModalService.close()
Run Code Online (Sandbox Code Playgroud)
对:
controller: ["$scope"
($scope) ->
$scope.closeModal = ->
ModalService.close()
]
Run Code Online (Sandbox Code Playgroud)
小智 6
确保将DI模式应用于需要在模块中进行注入的所有函数定义.很容易错过一个.如果您正在使用routeProvider,工厂,服务等,则他们都需要应用DI模式.在我抓住它们之前,我最终部署了多次:P
| 归档时间: |
|
| 查看次数: |
15863 次 |
| 最近记录: |