phonegap カメラを AngularJS と統合するためのベスト プラクティスを見つけようとしています。私が試した最初の方法は、ng-click から呼び出される promise を持つファクトリを作成することでした。別の方法は、コントローラー内の 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;
}
}
})