我有这个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);
},
答案 0 :(得分:0)
在父范围内将其评估为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
对象不会传递到该隔离范围。