AngularJS上传照片没有表单提交

时间:2015-07-09 05:50:34

标签: javascript angularjs

我想要上传照片而不必点击提交按钮。我正在使用离子框架和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
    });

  };

1 个答案:

答案 0 :(得分:0)

您已经在问题中找到了答案。 您可以将ng-click绑定到将图像上传到服务器的函数。

但更多的问题是为什么你不想要提交按钮。考虑一下:用户悄悄地上传图像,她选择要上传的图像但设法选择错误的图像。 如果我正确地阅读了您的场景,这将意味着上传了错误的图像。另一方面,如果有一个提交按钮,用户可以选择一个新图像而不上传第一个图像。

所以虽然你可以做到这一点,而你自己已经有了答案(ng-click="myUploadFunction(image)"),你真的想要吗?