Javascript CompleteItem上的角度文件上载更新范围

Javascript CompleteItem上的角度文件上载更新范围,javascript,angularjs,angular-file-upload,Javascript,Angularjs,Angular File Upload,因此,我的作用域中有一个值,名为$scope.selectedComponent 然后我有了下面的上传程序: var uploader = $scope.uploader = new FileUploader({ url: 'user_resources/upload.php', formData: [{module_id: $state.params.id, component: $scope.selectedComponent}] }); // FILTERS u

因此,我的作用域中有一个值,名为
$scope.selectedComponent

然后我有了下面的
上传程序

    var uploader = $scope.uploader = new FileUploader({
    url: 'user_resources/upload.php',
    formData: [{module_id: $state.params.id, component: $scope.selectedComponent}]
});

// FILTERS

uploader.filters.push({
    name: 'customFilter',
    fn: function(item /*{File|FileLikeObject}*/, options) {
        return this.queue.length < 10;
    }
});

// CALLBACKS

uploader.onWhenAddingFileFailed = function(item /*{File|FileLikeObject}*/, filter, options) {
    console.info('onWhenAddingFileFailed', item, filter, options);
};
uploader.onAfterAddingFile = function(fileItem) {
    console.info('onAfterAddingFile', fileItem);
};
uploader.onAfterAddingAll = function(addedFileItems) {
    console.info('onAfterAddingAll', addedFileItems);
};
uploader.onBeforeUploadItem = function(item) {
    console.info('onBeforeUploadItem', item);
};
uploader.onProgressItem = function(fileItem, progress) {
    console.info('onProgressItem', fileItem, progress);
};
uploader.onProgressAll = function(progress) {
    console.info('onProgressAll', progress);
};
uploader.onSuccessItem = function(fileItem, response, status, headers) {
    console.info('onSuccessItem', fileItem, response, status, headers);
};
uploader.onErrorItem = function(fileItem, response, status, headers) {
    console.info('onErrorItem', fileItem, response, status, headers);
};
uploader.onCancelItem = function(fileItem, response, status, headers) {
    console.info('onCancelItem', fileItem, response, status, headers);
};
uploader.onCompleteItem = function(fileItem, response, status, headers) {
    console.info('onCompleteItem', fileItem, response, status, headers);
};
uploader.onCompleteAll = function() {
    console.info('onCompleteAll');
};
var uploader=$scope.uploader=新文件上传器({
url:'user_resources/upload.php',
formData:[{module_id:$state.params.id,component:$scope.selectedComponent}]
});
//过滤器
uploader.filters.push({
名称:“customFilter”,
fn:函数(item/*{File | FileLikeObject}*/,选项){
返回this.queue.length<10;
}
});
//回调
uploader.onWhenAddingFileFailed=函数(项/*{File | FileLikeObject}*/,过滤器,选项){
console.info('onwhenadingfilefailed',项,过滤器,选项);
};
uploader.onAfterAddingFile=函数(fileItem){
console.info('onAfterAddingFile',fileItem);
};
uploader.onAfterAddingAll=函数(addedFileItems){
console.info('onAfterAddingAll',addedFileItems);
};
uploader.onBeforeUploadeItem=函数(项目){
console.info('onBeforeUploadItem',item);
};
uploader.onProgressItem=函数(fileItem,progress){
console.info('onProgressItem',fileItem,progress);
};
uploader.onProgressAll=函数(进度){
console.info('onProgressAll',progress);
};
uploader.onSuccessItem=函数(文件项、响应、状态、标题){
info('onSuccessItem',fileItem,响应,状态,标题);
};
uploader.onErrorItem=函数(fileItem、响应、状态、标题){
console.info('onErrorItem',fileItem,响应,状态,标题);
};
uploader.onCancelItem=函数(文件项、响应、状态、标题){
info('onCancelItem',fileItem,response,status,headers);
};
uploader.onCompleteItem=函数(文件项、响应、状态、标题){
info('onCompleteItem',fileItem,response,status,headers);
};
uploader.onCompleteAll=函数(){
console.info('onCompleteAll');
};
callback
函数:
onCompleteItem
是我想要更新
selectedComponent
对象的地方,但是在该函数的作用域内,我无法获取
作用域的变量


我的问题是,在上传文件后,如何更新变量?

您可以通过这种方式获得范围

var scope = angular.element(document.getElementById('MyCtrl')).scope();

尚未对其进行测试,但应能正常工作。

确保已在控制器中加载$scope:

.controller('AppController', ['$scope', 'FileUploader', function($scope, FileUploader) {
然后,您可以在此控制器中的任何位置更新$scope.selectedComponent的值

$scope.selectedComponent = "not uploaded";

    uploader.onCompleteItem = function (fileItem, response, status, headers) {
                  $scope.selectedComponent = "upload complete";
};

你能不能请你的答案解释一下为什么这个代码回答了这个问题?只有代码的答案是,因为它们不会教授解决方案。@MarcRasmussen尝试在onCompleteItem函数中放入console.log($scope.selectedComponent),并检查该值是否已更新。如果日志中有任何错误,也要发布错误?你收到了什么消息?