我想上传一张照片,而不需要点击提交按钮。我使用ionic框架和cordova插件,下面的例子是从iphone的照片库中获取照片。为简洁起见,我只包含了我的请求所必需的内容。
我的视图是这样的:
<form ng-submit="???">
<img class="img-circle" ng-src="{{prof_pic}}" ngclick="showActionsheet()" ng-if="pic_is_not_null()"/>
</form>
控制器:
$scope.getPictureFromGallery = function() { $cordovaCamera.getPicture(secondoptions).then(function(imageData) {
$scope.imageData = imageData;
//data model
$scope.data = {prof_pic_link: imageData};
var image = angular.toJson($scope.data);
UserService.UpdateMyPhoto($localStorage.CurrentUser.id, $localStorage.CurrentUser.auth_token, image)
.success(function (data) {
$scope.prof_pic = "data:image/jpeg;base64," + imageData;
//to display the image in the view
}).
error(function(error,status) {
console.log(error);
console.log(status);
})
}, function(err) {
// error
});
};
你的问题中已经有了答案。您可以将ng-click
绑定到将图像上传到服务器的函数。
但是更多的问题是为什么你不想要提交按钮。试想一下:用户想要上传一张图片,她选择了一张要上传的图片,但是却选错了。如果我正确地理解了你的场景,这将意味着错误的图像被上传。另一方面,如果有一个提交按钮,用户可以选择一个新的图像,而不需要上传第一张图像。
所以,虽然你可以这样做,而且你自己已经有了答案(ng-click="myUploadFunction(image)"
),你真的想这样做吗?