Javascript 在ng中单击按钮时,在警报中重复给出错误值

Javascript 在ng中单击按钮时,在警报中重复给出错误值,javascript,angularjs,Javascript,Angularjs,下面是我使用AngularJS以HTML表的形式呈现XML数据的代码,在该代码中,每次重新编码都会生成一个名为“Delete Request”的按钮 HTML代码 <div ng-app="myApp" ng-controller="myCtrl"> <table border="1" width="100%"> <tr> <th>Employee ID

下面是我使用AngularJS以HTML表的形式呈现XML数据的代码,在该代码中,每次重新编码都会生成一个名为“Delete Request”的按钮

HTML代码

<div ng-app="myApp" ng-controller="myCtrl">
            <table border="1" width="100%">
                <tr>
                    <th>Employee ID</th>
                    <th>Employee Name</th>
                    <th>Email ID</th>
                    <th>Device Status</th>
                </tr>
                <tr ng-repeat="detail in details" align="center">
                    <td>{{detail.EmployeeID}}</td>
                    <td>{{detail.EmployeeName}}</td>
                    <td>{{detail.EmailID}}</td>
                    <td>
                        <button ng-click="getID()" class="btnDelete">Delete Request</button>
                    </td>
                </tr>
            </table>
        </div>

员工ID
员工姓名
电子邮件ID
设备状态
{{detail.EmployeeID}
{{detail.EmployeeName}
{{detail.EmailID}
删除请求
HTML表中的XML数据

<UserDetail>
  <Detail>
    <EmployeeID>124578</EmployeeID>
    <EmployeeName>suresh</EmployeeName>
    <EmailID>suresh@xyz.com</EmailID>
  </Detail>
  <Detail>
    <EmployeeID>587458</EmployeeID>
    <EmployeeName>Vivek</EmployeeName>
    <EmailID>vjain@xyz.com</EmailID>
  </Detail>
</UserDetail>

124578
苏雷什
suresh@xyz.com
587458
维韦克
vjain@xyz.com
AngularJS代码:

<script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function ($scope, $http) {
            $http.get('myDB.xml')
            .then(function (response) {
                var x2js = new X2JS();
                $scope.details = [];
                var data = x2js.xml_str2json(response.data);
                $scope.details = data.UserDetail.Detail;
                $scope.getID = function () {
                    var myID = $(".btnDelete").closest('tr').children('td').eq(0).text();
                    alert(myID);
                }
            });

        });
      </script>

var-app=angular.module('myApp',[]);
app.controller('myCtrl',函数($scope,$http){
$http.get('myDB.xml')
.然后(功能(响应){
var x2js=新的x2js();
$scope.details=[];
var data=x2js.xml\u str2json(response.data);
$scope.details=data.UserDetail.Detail;
$scope.getID=函数(){
var myID=$(“.btnDelete”).closest('tr').children('td').eq(0.text();
警报(myID);
}
});
});

现在的问题是,我所面临的是,它只在单击按钮时给出第一条记录(员工ID),即使我单击了第二条记录按钮,它仍然在给我警报中的第一条记录(员工ID)值。因此,请帮助我如何处理它在警报中给出相应的记录值。

您只需在
getID(detail.EmployeeID
)中传递emp id,而无需使用jquery选择器获取emp id

html

<button ng-click="getID(detail.EmployeeID)" class="btnDelete">Delete Request</button>

你不应该这样做,因为AngularJS的哲学是专注于模型。

巴拉昌德兰的回答对你们来说很好,你们应该使用这种方法,但若你们仍然想这样做的话

<button ng-click="getID($event)" class="btnDelete">Delete Request</button>

我没有检查它,但我认为它可以正常工作。

Welcome dude@VIVEKJAIN
<button ng-click="getID($event)" class="btnDelete">Delete Request</button>
$scope.getID = function ($event) {
    var elmRef=$event.target;
    var myID = $(elmRef).closest('tr').children('td').eq(0).text();
}