Wie integrieren Phonegap Kamera mit AngularJS
Ich versuche, herauszufinden, die best-practice für die Integration von phonegap Kamera mit AngularJS. Die erste Methode, die ich ausprobiert habe, war die Erstellung einer Fabrik mit dem Versprechen, die aufgerufen wird von ng-click. Ein anderer Weg könnte sein, den code direkt in die ng-klicken Sie in der Steuerung, aber dann ist es nicht wiederverwendbar. Vielleicht eine Richtlinie sein könnte, aus diesem? Ich bin sicher, es gibt ein paar andere Möglichkeiten als gut. Was wäre die "angularjs" Weg sein?
Hier ist ein Beispiel für die factory-Methode, die ich ausprobiert....
HTML:
<button ng-click="takepic">Take Picture</button>
Controller:
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();
}
}
Werk:
.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;
}
}
})
Du musst angemeldet sein, um einen Kommentar abzugeben.
Persönlich würde ich die Logik in eine Richtlinie, da wird es brauchen, Zugriff auf DOM-Funktionen (und-Richtlinien sind besser geeignet dafür). Wenn Sie
require: 'ngModel'
in Ihrer Richtlinie, Sie können es verwenden, um speichern Sie die Ausgabe Wert.Html:
Richtlinie:
In Ihrem controller, können Sie
$watch
des Modells und schieben Sie es in ein array:Fügte ich ein paar Optionen und korrigiert den code für andere, die kommen in diesem Beitrag, wie ich. Danke für deinen Beitrag asgoth!