2016-03-07 2 views
2

Как я могу отображать динамическое значение внутри ionicLoading? Вот мой код, чтобы показать $ionicLoading, идея здесь для отображения хода загрузки:

$rootScope.updateProgress = 0; 
$ionicLoading.show({ 
    template: 'Updating...' + $rootScope.updateProgress 
}); 

И позже в моем коде я обновляю $rootScope.updateProgress «s значение:

var iPecent = Math.round(downloadProgress.receivedBytes/downloadProgress.totalBytes * 100); 
$rootScope.$apply(function() { 
    $rootScope.updateProgress = iPecent; 
}); 

Однако $rootScope.updateProgress» значение s не отражается, когда на экране отображается $ionicLoading - только показывает начальное значение 0. Если я выхожу из значения $rootScope.updateProgress, это отражает текущий процесс загрузки.

+0

Вы используете плагин для передачи файлов, чтобы загрузить файл –

+0

Да, сэр, плагин для передачи файлов используется для загрузки обновления для моего приложения. –

ответ

2

Позвольте мне использовать cordova-plugin-file-transfer в качестве примера:

$ionicLoading.show({ 
     template: 'downloading...' 
    }); 
    $cordovaFileTransfer.download(source, filePath, options, trustAllHosts).then(function (result) { 
     console.log('download successfully!'); 
     $ionicLoading.hide(); 
    }, function (err) { 
     alert('download failed!' + err); 
    }, function (progress) { 
     var downloadProgress = (progress.loaded/progress.total) * 100; 
     $ionicLoading.show({ 
      template: "Downloaded:" + Math.floor(downloadProgress) + "%" 
     }); 
     if (downloadProgress >= 100) { 
      $ionicLoading.hide(); 
     } 
    }); 
+0

Это работает для меня! Спасибо @Tom. Если вы случайно знаете, что влияет на приложение, если вы вызываете '$ ionicLoadigng.show()' сто раз, чтобы отобразить процентное изменение? –

0

Я считаю, это было предложено и добавлено здесь https://github.com/driftyco/ionic/issues/699.

Я не проверял, но на основании заявления:

Использование $ ionicLoading.show(), а загрузчик работает с новым содержанием, и будет обновлять содержание.

Если вы звоните .show() последующее к $ionicLoading уже показывает, что необходимо обновить содержание .. Если эта функция на самом деле теперь часть ионического, и вы положили в каком-то петле и обычной задержки, вы должны быть способный достичь того, что вам нужно.

0

Привет я использую показать процент загрузки изображения, как 19% ...

var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 
    $ionicLoading.show({ 
     template: 'Uploading Start....' + parseInt(100.0 * evt.loaded /evt.total) + '%', 

     }); 

где ЭВТ является обратный вызов метода прогресса ,