TypeError:Upload.upload不是函数 [英] TypeError: Upload.upload is not a function
问题描述
我具有此功能,并且会引发异常:
I have this function, and it throw exception:
$scope.uploadAvatar = function(avatar, user) {
Upload.upload({
url: 'api/v1/user' + user.id + '/',
avatar: avatar,
method: 'put'
})
};
TypeError:Upload.upload不是函数
TypeError: Upload.upload is not a function
我的脚本包括:
<script src="/static/js/main.js"></script>
<script src="/static/js/bootstrap.min.js"></script>
<script src="/static/js/posts_controller.js"></script>
<script src="/static/js/jquery.equalheights.min.js"></script>
<script src="/static/js/video.js/video.js"></script>
<script src="/static/js/swiper.jquery.min.js"></script>
<script src="/static/ng-file-upload/FileAPI.js"></script>
<script src="/static/ng-file-upload/ng-file-upload.js"></script>
<script src="/static/ng-file-upload/ng-file-upload-all.js"></script>
<script src="/static/ng-file-upload/ng-file-upload-shim.js"></script>
<script src="/static/ng-file-upload/ng-file-upload.js"></script>
所以我确实在控制器中注入了"Upload",在模块中注入了"ngFileUpload"我的控制器:
So I did inject 'Upload' in my controller and 'ngFileUpload' in module My controller:
myApp.controller('ShowsListController', ['$scope', '$http', '$routeParams', '$location', '$route', 'Upload', function ($scope, $http, $routeParams, $route, Upload) {
$http.get('/api/v1/shows/').success(function (data) {
$scope.shows = data;
});
$http.get('/check_login/').success(function (data) {
$scope.mediaurl = data.mediaUrl;
$scope.user = data;
});
$http.get('/api/v1/actors/').success(function (data) {
$scope.actors = data;
});
$http.get('/api/v1/users/').success(function (data) {
$scope.users = data;
});
$scope.uploadAvatar = function (avatar, user) {
Upload.upload({
url: 'api/v1/users' + user.id + '/',
avatar: avatar,
method: 'put'
})
};
}]);
添加具有这些功能的控制器
Add my controller with these function
推荐答案
在控制器声明中,您在 $ routeParams
之后注入了 $ location
,但您忘记了将其传递给功能.
In your controller declaration, you injected $location
after $routeParams
but you forgot to pass it in the function.
由于使用的是内联数组注释,因此需要使注释数组与函数声明本身中的参数保持同步.
Since you are using inline array annotation, you need to keep the annotation array in sync with the parameters in the function declaration itself.
myApp.controller('ShowsListController', ['$scope', '$http', '$routeParams', '$location', '$route', 'Upload', function ($scope, $http, $routeParams, $location, $route, Upload) {
// your current code
}
有关更多信息,请参见文档.
See docs for more info.
这篇关于TypeError:Upload.upload不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!