我有一个带有angularjs的MVC 4.5项目。我已经完成了控制器和工厂的捆绑和缩小。我已经阅读过有关使角度控制器和工厂缩小安全的信息,但出现此错误,却找不到问题:
未知提供者:$ resourceProvider
模块:
var app = angular.module("seducApp", []);
app.$inject = ['ngRoute', 'ngResource', 'ngSanitize', 'ngAnimate', 'ui.tinymce', 'mgcrea.ngStrap.tooltip',
'mgcrea.ngStrap.datepicker', 'mgcrea.ngStrap.alert', 'ui.select', 'uuid4', 'rt.popup', 'angular-md5', 'mgcrea.ngStrap.button',
'ui.bootstrap.tabs', 'mgcrea.ngStrap.timepicker', 'naif.base64', 'base64', 'angular-smilies', 'angular-google-adsense',
'angularFileUpload', 'angular.directives-round-progress', 'numericbinding', 'ngImgCrop', 'ui.tree', 'timer',
'$httpProviderConfig', '$compileProviderConfig', '$locationProviderConfig', 'uiSelectConfig', 'datetimeFilter',
'cutFilter', 'groupFilter', 'partitionFilter', 'aDisabledDirective'];
该工厂:
app.factory('siteRepository', function ($resource, $http) {
return {
checkSiteStatus: function () {
return $resource('/Home/GetSiteStatus').query();
},
getSiteStatus: function () {
return $http.get('/Home/GetSiteStatus')
},
getSiteChangeLog: function () {
return $http.get('/Home/GetSiteChangeLog')
}
}
});
在web.config中将Debug设置为true,那么我不应该获得工厂的缩小版本。
我已经尝试了很多方法,但是没有解决方法:(
最佳答案
删除app.$inject
语句。而是传递一个依赖项数组。观察下面的简化演示,以演示这一点...
var mod = angular.module('mod', []);
mod.factory('modFactory', function() {
return {
'woo': function woo() {
console.log('woah!');
}
}
});
// -----------------------------------------------------
var app = angular.module('app', ['mod']);
app.controller('ctrl', function(modFactory) {
modFactory.woo();
});
上面的工作,而以下将失败...
var app = angular.module('app', []);
app.$inject = ['mod'];
未知提供者:modFactoryProvider
JSFiddle Link-演示
快速解决此问题的方法包括将
app
定义更改为以下内容...var app = angular.module('seducApp', ['ngRoute', 'ngResource', 'ngSanitize', 'ngAnimate', 'ui.tinymce', 'mgcrea.ngStrap.tooltip',
'mgcrea.ngStrap.datepicker', 'mgcrea.ngStrap.alert', 'ui.select', 'uuid4', 'rt.popup', 'angular-md5', 'mgcrea.ngStrap.button',
'ui.bootstrap.tabs', 'mgcrea.ngStrap.timepicker', 'naif.base64', 'base64', 'angular-smilies', 'angular-google-adsense',
'angularFileUpload', 'angular.directives-round-progress', 'numericbinding', 'ngImgCrop', 'ui.tree', 'timer',
'$httpProviderConfig', '$compileProviderConfig', '$locationProviderConfig', 'uiSelectConfig', 'datetimeFilter',
'cutFilter', 'groupFilter', 'partitionFilter', 'aDisabledDirective']);
查看Angular DI docs以获得有关该主题的更多详细信息