1

だから私は自分のスコープに値を持っています$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

私の質問は、ファイルがアップロードされた後に変数を更新するにはどうすればよいですか?

4

2 に答える 2

2

$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";
};
于 2015-03-16T07:46:04.443 に答える
1

この方法でスコープを取得できます

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

テストしていませんが、動作するはずです。

于 2015-03-14T07:25:00.190 に答える