ionic/cordova camera for a newbie with angularJS

I am trying to use the camera. I've searched for an example or a guide but I couldn't find anything.

What I want to do is to simply open the camera on the push of a button, get a picture, and display the image - all using ionic and angular.

Here is what i did

index.html:

<ion-nav-buttons side="left">
    <button menu-toggle="left"class="button button-icon icon ion-navicon"></button>
</ion-nav-buttons>


<ion-content class="has-header contentPadding"> 

     <div class="form-group padding-top">                   
          <button class='button button-positive' data-ng-click="takePicture()">
            {{text.buttonTitle}}
          </button> 
      </div>

      <div class="item item-image">
            <img ng-src="{{cameraPic}}"/>
      </div>                    

</ion-content>

The controller:

 $scope.takePicture = function(){   
        var cameraOptions = {
            quality: 50,
            destinationType: Camera.DestinationType.DATA_URL                
         };
        var success = function(data){
        $scope.$apply(function () {
             /*
               remember to set the image ng-src in $apply,
               i tried to set it from outside and it doesn't work.
             */
               $scope.cameraPic = "data:image/jpeg;base64," + data;
             });
         };
        var failure = function(message){
             alert('Failed because: ' + message);
        };
        //call the cordova camera plugin to open the device's camera
        navigator.camera.getPicture( success , failure , cameraOptions );            
    };

Perhaps this can help you: Ionic Cordova Example

Immediately available for Phonegap Build!

Thank you @AMG for posting a link to the Ionic Camera example project. I analyzed it and found that we need to inject Camera into the controller, like so:

.controller('MyCtrl', function($scope, Camera) {

Note that there is not a dollar sign before Camera. This really should be documented more explicitly.

Also, you need to add this factory:

.factory('Camera', ['$q', function($q) {

  return {
    getPicture: function(options) {
      var q = $q.defer();

      navigator.camera.getPicture(function(result) {
        // Do any magic you need
        q.resolve(result);
      }, function(err) {
        q.reject(err);
      }, options);

      return q.promise;
    }
  }
}])