我有一系列记录,我使用文件输入上传。我的目的是在单击“+”时连续上传文件,并在单击“x”时删除文件。
我的问题是,每当我在一个记录中上传一个文件时,所有其他记录也会被同一个文件更新。我确信我错过了在这里使用$index
逻辑。我已经通过this
文件输入事件传递onchange
。我怎样才能将$index
与其一起传递?
<div ng-repeat="itemList in FilesToShow track by $index">
<div style="width: 90%; display: inline-block;">{{itemList.FileName}}</div>
<div style="cursor:pointer;display: inline-block;"
ng-click="removefile(itemList)">x</div>
<div style="cursor:pointer;display: inline-block;"
ng-focus="$parent.focused = true" ng-if="FilesToShow.length==0">+</div>
</div>
<input ng-if="focused" ng-disabled="FilesToShow.length==1" type="file"
id="fileId" value="Browse..." name="file"
onchange="angular.element(this).scope().getFileDetails(this)" />
$scope.FilesToShow = [];
$scope.getFileDetails = function(hisLstFile) {
$scope.$apply(function() {
var Historyvalue = {
FileName: hisLstFile.files[0].name,
IsFileDeleted: false,
DownloadPath: null,
Id: null
};
$scope.FilesToShow.push(Historyvalue);
});
}
答案 0 :(得分:0)
您可以在函数中传递$index
作为参数。
请确保它位于ng-repeat
范围内。
像:
onchange="myFunction(this, $index)";
祝你好运:)