我正在尝试找出将 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;
}
}
})