Как интегрировать PhoneGap Camera с AngularJS
Я пытаюсь выяснить, как лучше интегрировать камеру с телефонной пробкой в AngularJS. Первым методом, который я попробовал, было создание фабрики с обещаниями, которые вызываются из ng-click. Другим способом было бы поместить код прямо в ng-click внутри контроллера, но тогда его нельзя использовать повторно. Может быть, из этого можно сделать директиву? Я уверен, что есть и несколько других способов. Каким был бы «angularjs» путь?
Вот пример фабричного метода, который я попробовал ....
HTML:
<button ng-click="takepic">Take Picture</button>
Контроллер:
function picturePageCtrl($scope, Camera) {
$scope.takepic = function() {
// I'd like to push this into an array of "pics" here.
// but it is hard to push() with promises.
Camera.getPic();
}
}
Фабрика:
.factory('Camera', function($q) {
var deferred = $q.defer();
return {
getPic: function() {
navigator.camera.getPicture(
function (imageURI) {
deferred.resolve(imageURI);
},
function (message) {
deferred.reject(message);
},
{
quality: 50,
destinationType: Camera.DestinationType.FILE_URI
}
);
return deferred.promise;
}
}
})