AngularJS上传照片没有表单提交



我想上传一张照片,而不需要点击提交按钮。我使用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)"),你真的想这样做吗?

最新更新