我在 $on 上进行了 api 调用,我收到了问题附带的 Json 响应。我能够在 li 中显示 fileName ,现在当用户单击删除图标时我有删除功能,我正在调用函数并尝试获取 rskAsesAprvAtchKy key ,以便我可以发布键到后端删除该文件。
它是未定义的,我不确定我错过了什么,任何帮助将不胜感激..
main.html
<div class="row">
<div class="col-md-6">
<ul>
<li ng - repeat="file in attachedDoc">{{file . fileName}}
<a href="" ng - click="deleteFile()">
<span class="glyph_remove"></span>
</a>
</li>
</ul>
</div>
</div>
工厂.js
$scope.$on('addEditAttest', function (s, attestorObj) {
$scope.attestorObj = attestorObj;
attestorFactory.getAttachedDocument($scope.attestorObj.riskAssessmentRoleAsgnKey)
.then(function (response) {
$scope.attachedDoc = response.data;
});
});
$scope.deleteFile = function () {
var fileKey;
$scope.attachedDoc.rskAsesAprvAtchKy = fileKey;
console.log("deleted", fileKey);
}
JSON.JS
[{
"rskAsesAprvAtchKy": 1001,
"fileName": "Doc 1",
"rskAsesRoleAsgnKy": 1277
}]
最佳答案
您可以将 key 作为 ng-click
方法的参数传递:
风景
<li ng-repeat="file in attachedDoc">{{file.fileName}}
<a href="" ng-click="deleteFile(file.rskAsesAprvAtchKy, $index)"> //Key from the file
<span class="glyph_remove">
</span>
</a>
</li>
更改删除方式
$scope.deleteFile = function(fileKey, fileIndex){
/*Delete the file*/
$scope.attachedDoc.splice(fileIndex, 1); //remove the file at position fileIndex
}
编辑:
从 ng-repeat 传递 $index 并使用 Array.splice()会做这项工作。见上文。
关于javascript - 如何使用 AngularJS 从对象列表中获取 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31195747/