Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 为什么上传文件不能用于离子内容?如果我去除离子含量,我的工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是离子的新手,我想上传图片,因此我使用“ng-file-upload”上传我的图片.
但是只有当我删除“ion-content”时代码才能工作.我的模板是:

<ion-View view-title="IQ Marketplace" ng-controller="SellCtrl">
    <ion-content class="padding" >
    <div class="list">
      <form   ng-submit="submitAds()" name="form" novalidate>


        <label class="item item-input">
          <span class="input-label">Picture</span>
      <input type="file" ngf-SELEct ng-model="file" name="file" ngf-pattern="'image/*'"
        accept="image/*" >
        </label>
    <input type="submit" class="button button-block button-positive" value="Save" ng-disabled="form.$invalid">
    </form>

    </div><!--list-->

    </ion-content>
    </ion-view>

我的控制器是:

.controller('SellCtrl',function($scope,Upload) {

                  $scope.submitAds = function() {
                    console.log("ayman "+ $scope.filE)
                      $scope.upload($scope.filE);
                  };
                   $scope.upload = function (filE) {
                      Upload.upload({
                          url: 'http://localhost/IQM/public/ads',data: {file: file,'username': $scope.test}
                      }).then(function (resp) {
                          console.log('success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
                      },function (resp) {
                          console.log('Error status: ' + resp.status);
                      },function (evt) {
                          var progressPercentage = parseInt(100.0 * evt.loaded / evt.@R_165_10586@l);
                          console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.Name);
                      });
                  };
  });

这段代码给了我这个例外:

TypeError: CAnnot read property 'name' of undefined
   at controllers.js:84
   at ionic.bundle.js:23476
   at Scope.$eval (ionic.bundle.js:24673)
   at Scope.$digest (ionic.bundle.js:24484)
   at ionic.bundle.js:24712
   at completeOutstandingrequest (ionic.bundle.js:14221)
   at ionic.bundle.js:14493

但是,当我删除“离子内容”时,上传将成功.
问题是什么?

解决方法@H_502_31@
我想你已经介绍Ionic Framework.

这显然是角度范围问题.

您可以在离子内容中定义ng-model =“file”.然ion-content创建了一个新范围,但您无法直接检索变量文件.

请参doc,它说:

您可以使用点符号,例如:

// controller
$scope.data = {}

// html
<ion-content class="padding" >
    ...
    <input ng-model="data.file" />
    ...
</ion-content>

然后你可以通过$scope.data.file获取值.

根本原因在于AngularJS的范围概念.

您可以阅读这些文章获取更多信息.

> http://forum.ionicframework.com/t/problem-with-ion-content-and-scope-vars-inside-function/1811
> https://github.com/angular/angular.js/wiki/Understanding-Scopes

大佬总结

以上是大佬教程为你收集整理的angularjs – 为什么上传文件不能用于离子内容?如果我去除离子含量,我的工作全部内容,希望文章能够帮你解决angularjs – 为什么上传文件不能用于离子内容?如果我去除离子含量,我的工作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。