【问题标题】:pass index value using ng-repeat in onchange and input type在 onchange 和输入类型中使用 ng-repeat 传递索引值
【发布时间】:2019-05-24 23:21:13
【问题描述】:

我有这个 html

<div ng-repeat="i in [1,2,3,4,5]">
<input type="file" class="form-control" ng-hide="true"
 accept="image/*" image="vm.venueImageList[i].file"
 file-upload="vm.venueImageList[i].file"
  resize-max-height="720"
  resize-max-width="1024"
   resize-quality="0.96"
   resize-type="image/jpg"
   onchange="angular.element(this).scope().vm.preUpload($index);"
   ng-image-compress/>
</div>

我想传递 $index 值,但它说 $index 未定义。 有人可以帮我如何将 $index 传递给 angularjs 函数。

这里是函数

preUpload:function(index){
            vm.hideLoader[index].value=true;
            setTimeout(function () {
                if(vm.venueImageList[index].file.compressed.dataURL){
                    vm.venueImageList[index].url=vm.venueImageList[index].file.compressed.dataURL;
                    vm.venueImageList[index].file=vm.convertBaseToImage(vm.venueImageList[index].url);
                    vm.uploadFile(index);
                }

            },4000);

        },

【问题讨论】:

  • 为什么不使用ng-change 事件? $index 不起作用的原因是因为它是一个 Angular 表达式,并且您正在尝试使用常规 JS 属性。
  • 我无法使用 ng-repeat 上传文件,我先尝试过
  • 你可以尝试像{{$index}}这样传递索引
  • 不工作{{$index}}
  • @tymeJV ng-change 指令仅与 ng-model 指令及其控制器一起使用。股票ng-model 指令不适用于&lt;input type=file

标签: javascript angularjs angularjs-ng-repeat angularjs-3rd-party


【解决方案1】:

将其评估为父作用域上的 AngularJS 表达式:

<div ng-repeat="i in [1,2,3,4,5]">
    <input type="file" class="form-control" ng-hide="true"
       accept="image/*" image="vm.venueImageList[i].file"
       file-upload="vm.venueImageList[i].file"
       resize-max-height="720"
       resize-max-width="1024"
       resize-quality="0.96"
       resize-type="image/jpg"
       ̶o̶n̶c̶h̶a̶n̶g̶e̶=̶"̶a̶n̶g̶u̶l̶a̶r̶.̶e̶l̶e̶m̶e̶n̶t̶(̶t̶h̶i̶s̶)̶.̶s̶c̶o̶p̶e̶(̶)̶.̶v̶m̶.̶p̶r̶e̶U̶p̶l̶o̶a̶d̶(̶$̶i̶n̶d̶e̶x̶)̶;̶"̶ 
       onchange="angular.element(this).scope().$parent.$eval('vm.preUpload($index)');"
       ng-image-compress
    />
</div>

ng-image-compress 指令使用隔离范围。 vm 对象未传递到该隔离范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多