angular.js:13920 Error: [$injector:unpr] http://errors.angularjs.org/1.5.8/$injector/unpr?p0=%24uploadProvider%20%3C-%20%24upload%20%3C-%20MainController
at http://localhost:8080/libs/angular/angular.min.js:6:412
at http://localhost:8080/libs/angular/angular.min.js:43:174
at Object.d [as get] (http://localhost:8080/libs/angular/angular.min.js:40:432)
at http://localhost:8080/libs/angular/angular.min.js:43:236
at d (http://localhost:8080/libs/angular/angular.min.js:40:432)
at e (http://localhost:8080/libs/angular/angular.min.js:41:158)
at Object.instantiate (http://localhost:8080/libs/angular/angular.min.js:42:24)
at http://localhost:8080/libs/angular/angular.min.js:90:32
at Object.link (http://localhost:8080/libs/angular-route/angular-route.js:1054:26)
at http://localhost:8080/libs/angular/angular.min.js:16:71 <div ng-view="" class="ng-scope">
angular.module('MainController', []).controller('MainController', function($scope,$upload) {
$scope.uploadFile = function (file) {
$Upload.upload({
url: '/api/upload',
data: $scope.file
}).then(function (resp) {
console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
}, function (resp) {
console.log('Error status: ' + resp.status);
}, function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
});
};
});
<div ng-controller="MainController">
<div>
Upload File:
<form>
<input type="file" ng-file-select="fileSelected($files)" >
<input type="submit" ng-click="uploadFile()" >
</form>
</div>
</div>
app.js
angular.module('sampleApp', ['ngRoute', 'appRoutes', 'MainController', 'EventController','EventService','angularFileUpload','ngFileUpload']);
我想通过angular前端将选定的文件上传到Nodejs Backend.and,然后在NodeJs中读取文件并保存到MongoDB中。有人能指出我在这里犯的错误吗?
发布于 2017-04-26 15:58:53
根据 docs的说法,应该在控制器中注入的是Upload
而不是$upload
。所以,它会是这样的,
angular
.module('MainController', [])
.controller('MainController', function($scope, Upload) {
$scope.uploadFile = function (file) {
Upload.upload({
url: '/api/upload',
data: $scope.file
}).then(function (resp) {
console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
}, function (resp) {
console.log('Error status: ' + resp.status);
}, function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
});
};
});
这将帮助您摆脱您在顶部提到的错误。
https://stackoverflow.com/questions/43628026
复制相似问题