2016-01-14 4 views
0

Я играю с ионным фреймворком, и я пытаюсь загрузить другой вид после съемки.Загрузите другое изображение с изображением после съемки с помощью камеры ngCordova и Ionic

У меня есть следующий контроллер:

.controller('SnapCtrl', function($scope, $cordovaCamera) {  
    $ionicPlatform.ready(function(){ 
    var options = { 
     quality : 75, 
     destinationType : Camera.DestinationType.DATA_URL, 
     sourceType : Camera.PictureSourceType.CAMERA, 
     allowEdit : false, 
     encodingType: Camera.EncodingType.JPEG, 
     targetWidth: 400, 
     targetHeight: 400, 
     popoverOptions: CameraPopoverOptions, 
     saveToPhotoAlbum: false 
    }; 

    $cordovaCamera.getPicture(options).then(function(imageData) { 
     $scope.imgURI = "data:image/jpeg;base64," + imageData;  
    }, function(err) { 
    // An error occured. Show a message to the user 
    }); 
    }) 
}) 

И это код из моих страниц:

config(function($stateProvider, $urlRouterProvider) { 

    // Ionic uses AngularUI Router which uses the concept of states 
    // Learn more here: https://github.com/angular-ui/ui-router 
    // Set up the various states which the app can be in. 
    // Each state's controller can be found in controllers.js 
    $stateProvider 

    // setup an abstract state for the tabs directive 
    .state('tab', { 
    url: '/tab', 
    abstract: true, 
    templateUrl: 'templates/tabs.html' 
    }) 

    // Each tab has its own nav history stack: 

    .state('tab.export', { 
    url: '/export', 
    views: { 
     'tab-dash': { 
     templateUrl: 'templates/tab-dash.html', 
     controller: 'DashCtrl' 
     } 
    } 
    }) 

    .state('tab.users', { 
     url: '/users', 
     views: { 
     'tab-chats': { 
      templateUrl: 'templates/tab-chats.html', 
      controller: 'ChatsCtrl' 
     } 
     } 
    }) 

    .state('tab.snapshot', { 
    url: '/snapshot', 
    views: { 
     'tab-chats': { 
     templateUrl: 'templates/tab-snapshot.html', 
     controller: 'SnapCtrl' 
     } 
    } 
    }) 

    /* .state('tab.chat-detail', { 
     url: '/chats/:chatId', 
     views: { 
     'tab-chats': { 
      templateUrl: 'templates/chat-detail.html', 
      controller: 'ChatDetailCtrl' 
     } 
     } 
    })*/ 

    .state('tab.settings', { 
    url: '/settings', 
    views: { 
     'tab-account': { 
     templateUrl: 'templates/tab-account.html', 
     controller: 'AccountCtrl' 
     } 
    } 
    }); 

Код выше открывает камеру автоматически, когда пользователь получает доступ к странице снимки. Я хочу, например, после съемки (функции находятся на странице «моментальный снимок» и на контроллере) загружают другую страницу, например. «настройки» и отобразить снимок, сделанный на этой странице.

Я читал кое-что о заявлении $state.go('app.home'), но это не работает для меня или, может быть, я использую его неправильно, что я могу сделать для достижения того, что я ищу, в нескольких словах: изображение и загрузить страницу с изображением.

С уважением.

ответ

0

Вы можете использовать $state.go('tab.settings'), чтобы перенаправить на этот просмотр.

Вы должны быть в состоянии передать изображение на этот вызов, как:

$cordovaCamera.getPicture(options).then(function(imageData) { 
     $scope.imgURI = "data:image/jpeg;base64," + imageData; 
     $state.go('tab.settings', {image: $scope.imgURI}); 
    }, 

Вот еще один ответ с дополнительными деталями: https://stackoverflow.com/a/30511670/643779

+0

Это не сработало и некоторые особенности моего приложения не меняется как только я загружу изменения в ионный, я постараюсь выяснить, что вызывает проблему. – Manu

+0

Я исправляю проблемы с обновлением проекта, чтобы проверить его с помощью приложения с ионным представлением, и ваше решение, по-видимому, не работает, как только я сделаю снимок камера все еще работает, она не закрывается и перенаправляет меня на другое представление. – Manu

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