ng-upload无法在Firefox 26和Chrome 31上运行

时间:2013-12-20 23:02:43

标签: javascript angularjs angularjs-directive

我正在使用here中的指令ng-upload This is我正在使用的版本。

在“Chrome 32 Aura”上,该指令运行良好,但是:

  • 在Chrome 31上,当我尝试保存表单时,收到错误“响应不是有效的JSON”
  • 在Firefox 26上,我得到了同样的错误,但屏幕初始化时。

该错误来自第191行。我找不到让它工作的方法,我尝试使用不同的JSON解析器,验证内容,但仍然很费力。

这是我的HTML:

<form ng-upload="uploadComplete(content)" upload-options-before-submit="beforeLoading(form)" name="form" action="/v1/themes"> 
   <div class="form-group theme-middleContainer">
    <label for="logoType">Logotype</label>
    <div class="input-group theme-logotypeContainer">
      <div class="image-container">
        <img class="organization-image" ng-src="{{imageSrc}}" ng-hide="imageSrc==undefined"/>
      </div>
      <div class="uploader-container">
        <input class="form-control btn btn-inverse upload-input" type="file" id="logoType" name="logoType" accept="image/png" ng-model="theme.logoType" ng-file-select="onFileSelect($files)">
      </div>
    </div>
    <div class="error" ng-show="invalidImageExtension">Please select file in <b>png</b> format.</div>
    <div class="error" ng-show="form.logoType.$error.required && submitted">Please select a logo.</div>
  </div>
</form>

这是我的角度方法:

$scope.$on("fileSelected", function (event, args) {
   $scope.$apply(function () { $scope.theme.logoType = args.file; });
});

$scope.beforeLoading = function(form){
   $scope.submitted = true;
   return !(form.$invalid);
};

$scope.uploadComplete = function (content) {
   $scope.submitted = false;
   if ( _.isObject(content)) {
      $location.path("/home");
   }else{
      $scope.hasError = true;
      $scope.errorMessage = content;
   }
}; 

BTW:我在后端使用node.js。在Chrome 31上,我看到保存在mongoDB上的图像,我看到正确的内容响应,但json错误仍然存​​在。

有没有人找到解决方法或尝试过同样的问题?

0 个答案:

没有答案