2016-02-02 3 views
1

Это ионное приложение с функциями $ cordovaImagePicker и $ cordovaCamera в том же контроллере, и оба вызваны из одной и той же reservation.html Это определение контроллера:TypeError: Не удается прочитать свойство «getPictures» неопределенного

.controller('AppCtrl', ['$scope', '$timeout', '$ionicModal', '$localStorage', '$cordovaCamera', '$ionicPlatform', '$cordovaImagePicker', function($scope, $timeout, $ionicModal, $localStorage, $cordovaCamera, $ionicPlatform, $cordovaImagePicker){ 

Я установил $ cordovaImagePicker с помощью ionic plugin add cordova-plugin-imagepicker и $ cordovaCamera с помощью ionic plugin add cordova-plugin-camera

Это код контроллера:

$ionicPlatform.ready(function() { 
      var options1 = { 
       quality: 50, 
       destinationType: Camera.DestinationType.DATA_URL, 
       sourceType: Camera.PictureSourceType.CAMERA, 
       allowEdit: true, 
       encodingType: Camera.EncodingType.JPEG, 
       targetWidth: 100, 
       targetHeight: 100, 
       popoverOptions: CameraPopoverOptions, 
       saveToPhotoAlbum: false 
      }; 

      $scope.takePicture = function() { 
       $cordovaCamera.getPicture(options1).then(function(imageData) { 
        $scope.registration.imgSrc = "data:image/jpeg;base64," + imageData; 
       }, function(err) { 
        console.log(err); 
       }); 

       $scope.registerform.show(); 
      }; 

      var options2 = { 
       maximumImagesCount: 1, 
       width: 800, 
       height: 800, 
       quality: 80 
      }; 
      $scope.getPicture = function() { 
       $cordovaImagePicker.getPictures(options2).then(function (results) { 
        for (var i = 0; i < results.length; i++) { 
         console.log('Image URI: ' + results[i]); 
         $scope.registration.imgSrc = results[i]; 
        } 
       }, function(error) { 
        // error getting photos 
        console.log(error); 
       }); 
      }; 
     }); 
    }]) 

Я запускаю приложение на телефоне Android 5. Функция takePicture работает отлично. Функция getPicture не работает.

Консоль Devtools показывает:

TypeError: Cannot read property 'getPictures' of undefined 
    at Object.getPictures (file:///android_asset/www/lib/ngCordova/dist/ng-cordova.js:4420:28) 
    at Scope.$scope.getPicture (file:///android_asset/www/js/controllers.js:132:37) 
    at fn (eval at <anonymous> (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:26457:15), <anonymous>:4:221) 
    at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:62386:9 
    at Scope.$eval (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:29158:28) 
    at Scope.$apply (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:29257:23) 
    at HTMLButtonElement.<anonymous> (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:62385:13) 
    at HTMLButtonElement.eventHandler (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:16583:21) 
    at triggerMouseEvent (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:2948:7) 
    at tapClick (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:2937:3) 

ошибка, кажется, говорит, что getPictures в сферу Scope $ scope.getPicture, но это не то, как организован код.. Я попытался удалить и переустановить $ cordovaImagePicker, но никаких изменений.

+0

Я бы сказал, что '$ cordovaCamera' не определяется к тому времени, когда вы пытаетесь вызвать метод' gefPictures(). Вы проверили, правильно ли работает инъекция? – Phonolog

+0

, когда я нажимаю на первую ошибку, указывает на начало .getPictures() в $ window.imagePicker.getPictures (функция .... $ cordovaCamera работает нормально. – meanstacky

ответ

Смежные вопросы