javascript - Angular 文件上传更新范围 onCompleteItem

标签 javascript angularjs angular-file-upload

所以我在我的范围内有一个名为 $scope.selectedComponent

的值

然后我有以下 uploader :

    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');
};

callback 函数:onCompleteItem 是我想更新 selectedComponent 对象的地方,但是在该函数的范围内我无法获取scope

的变量

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

最佳答案

确保 $scope 已加载到您的 Controller 中:

.controller('AppController', ['$scope', 'FileUploader', function($scope, FileUploader) {

然后你可以从这个 Controller 的任何地方更新 $scope.selectedComponent 的值。

$scope.selectedComponent = "not uploaded";

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

关于javascript - Angular 文件上传更新范围 onCompleteItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29032375/

相关文章:

javascript - 动态改变rxjs中可观察对象的延迟时间

javascript - 如何使用 Angular.js 在单个类中添加多个条件

javascript - 在 NodeJS 中使用快速路由方法时出错

javascript - AngularJS Material 的表支持

javascript - 调试模拟 httpbackend 请求

angularjs - 错误 : [ng:areq] Argument 'module' is not a function, 获取对象

javascript - 无法使 Node.js hello world 应用程序运行 [Fedora 21]

javascript - 与自定义指令范围的 2 种方式数据绑定(bind)

javascript - 从服务器获取数据的有效方法

javascript - 如何在使用 Angular-file-upload 上传之前修复 EXIF 方向