2015-09-22 22 views
0

我有一個瀏覽文件系統的代碼,並使用ionic和angularjs從圖庫中選擇圖像。我目前面臨的挑戰是圖像在選擇時顯示,有時在選擇時不顯示。一切似乎從我的最後,因爲我已檢查,以確保所有的插件和依賴關係被利用。下面是我的源代碼,並會很高興,如果你能幫助: 這是我controllers.js代碼:::離子:從圖庫中選擇圖像不正確

angular.module('appControllers', []) 

.controller('HomeCtrl', ['$scope', '$rootScope', '$cordovaCamera', function($scope, $rootScope, $cordovaCamera) { 

    $scope.ready = false; 
    $scope.images = []; 

    $rootScope.$watch('appReady.status', function() { 
     console.log('watch fired '+$rootScope.appReady.status); 
     if($rootScope.appReady.status) $scope.ready = true; 
    }); 

    $scope.selImages = function() { 

     var options = { 
      quality: 50, 
      destinationType: Camera.DestinationType.FILE_URI, 
      sourceType: Camera.PictureSourceType.PHOTOLIBRARY, 
      targetWidth: 200, 
      correctOrientation: true, 
      targetHeight: 200 

     }; 

     $cordovaCamera.getPicture(options).then(function(imageUri) { 
      console.log('img', imageUri); 
      $scope.images.push(imageUri); 

     }, function(err) { 
     // error 
     }); 

    }; 

}]) 

這是我的app.js代碼:

.run(function($rootScope,$ionicPlatform) { 
    $rootScope.appReady = {status:false}; 

    $ionicPlatform.ready(function() { 
     console.log('ionic Ready'); 
     $rootScope.appReady.status = true; 
     $rootScope.$apply(); 
     console.log('in app.js, appReady is '+$rootScope.appReady.status); 
//  if(window.cordova && window.cordova.plugins.Keyboard) { 
//   cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
//  } 
     if(window.StatusBar) { 
      StatusBar.styleDefault(); 
     } 
    }); 
}); 

回答

0

我能通過使用$scope.$apply();函數來解決我的問題

1

要選擇一個或多個圖像,您可以使用「ImagePicker插件」。 在這個插件中,你可以設置你想要選擇的圖像數量,並且在我的最後工作正常。 https://github.com/wymsee/cordova-imagePicker。 例 - >

window.imagePicker.getPictures(
function(results) { 
    for (var i = 0; i < results.length; i++) { 
     console.log('Image URI: ' + results[i]); 
    } 
}, function (error) { 
    console.log('Error: ' + error); 
}); 

實施例 - 獲得至多10個圖像縮放至800寬度:

window.imagePicker.getPictures(
function(results) { 
    for (var i = 0; i < results.length; i++) { 
     console.log('Image URI: ' + results[i]); 
    } 
}, function (error) { 
    console.log('Error: ' + error); 
}, { 
    maximumImagesCount: 10, 
    width: 800 
}); 
相關問題