使用注入时,ng-file-upload不能与MEAN.JS应用程序一起使用

引发错误:

angular.js:13920 Error: [$injector:unpr] Unknown provider: ngFileUploadProvider <- ngFileUpload <- MyCtrl http://errors.angularjs.org/1.5.8/$injector/unpr?p0=ngFileUploadProvider%20%3C-%20ngFileUpload%20%3C-%20MyCtrl at http://192.168.99.100:3000/lib/angular/angular.js:68:12 at http://192.168.99.100:3000/lib/angular/angular.js:4511:19 at Object.getService [as get] 

当控制器定义如下:

 (function ($, angular) { 'use strict'; angular.module('myapp').controller('MyCtrl', MyCtrl); function MyCtrl( $scope, $q, $stateParams, Upload, $timeout ){ var vm = this; function setup(){ vm.stateParams = $stateParams; //set scope variables here viewApi(); } function viewApi(){ vm.uploadImage = function(file, errFiles) { vm.uploadedThumbnail = file; vm.errFile = errFiles && errFiles[0]; if (file) { file.upload = Upload.upload({ url: 'https://angular-file-upload-cors-srv.appspot.com/upload', data: { file: file } }); file.upload.then(uploadSuccess, uploadError, uploadEvent); } }; } ... setup(); } MyCtrl.$inject = [ '$scope', '$q', '$stateParams', 'ngFileUpload', // Note that 'Upload' doesn't work either '$timeout' ]; }(window.jQuery || window.$, window.angular)); 

我尝试ngFileUpload ,只是上传与相同的结果。 所有的依赖关系被声明和加载。 这与喷射模式工作不正常有关。

您需要将ngFileUpload添加到模块定义中,如下所示:

 angular.module('myapp', ['ngFileUpload', 'ui.router', 'other.dependencies', ...]).controller('MyCtrl', MyCtrl); ... 

其实我发现这个解决scheme比较简单:

angular.module('myapp',['ngFileUpload'])。控制器('MyCtrl',MyCtrl);

它解决了上述问题,但通过删除应用程序状态提供程序创build一个新的问题:angular.js:68未捕获的错误:[$ injector:modulerr]由于以下原因未能实例化模块myapp:错误:[$ injector:unpr]未知的提供程序:$ stateProvider http://errors.angularjs.org/1.5.8/ $ injector / unpr?p0 =%24stateProvider

所以我们通过创build一个新的问题来解决一个问题。

现在还有一个新的问题:如何在不覆盖其他应用程序依赖关系的情况下添加“ngFileUpload”依赖项。