angular-文件上传更新范围onCompleteItem
angular-file-upload update scope onCompleteItem
所以我在我的范围内有一个值叫做 $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
对象的地方,但是在该函数的范围内我无法获取 [=17= 的变量]
我的问题是文件上传后如何更新我的变量?
您可以通过这种方式获得示波器
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";
};
所以我在我的范围内有一个值叫做 $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
对象的地方,但是在该函数的范围内我无法获取 [=17= 的变量]
我的问题是文件上传后如何更新我的变量?
您可以通过这种方式获得示波器
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";
};