Чего я пытаюсь достичь:
Когда пользователь щелкает заполнитель изображения, изображение загружается с сервера на устройство (в определенное место), путь к загруженному изображению (с устройства) затем сохраняется в $scope и отображается пользователю.
Ниже мой контроллер
.controller('NDetailCtrl', function($scope, $state,$stateParams,$ionicLoading,$ionicHistory,$timeout,$cordovaFile,$cordovaFileTransfer) {
$scope.image = '';
// triggered on click
$scope.downloadFile = function(image) {
var url = "http://app.example.org/uploads/"+image ;
var filename = url.split("/").pop();
var targetPath = cordova.file.externalRootDirectory+filename;
var trustHosts = true;
var options = {};
$cordovaFileTransfer.download(url, targetPath, options, trustHosts)
.then(function(result) {
// Success!
console.log(JSON.stringify(result));
$scope.resource = result.nativeURL;
// This return the file location as
// file:///storage/emulated/0/[filename]
$scope.image = true;
console.log($scope.resource);
}, function(error) {
// Error
alert('Error : Some Thing went wrong !');
}, function (progress) {
$timeout(function () {
$scope.downloadProgress = (progress.loaded / progress.total) * 100;
});
});
};
})
У меня есть конфигурация белого списка, а также вставляется боковое событие deviceready
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|file|blob|cdvfile|content):|data:image\//);
Когда я пытаюсь загрузить возвращенный путь с помощью ng-src, он ничего не отображает, просто пустое пространство.
ОБНОВЛЕНИЕ: после перестроения приложения обнаружено, что проблема сохраняется только на ionic --livereload .