【发布时间】:2023-03-22 09:02:01
【问题描述】:
下面是我的 html 表,我在其中打印来自 XML 文件的数据,并且在对应于每个条目的状态列中,有一个使用 angularJS 指令 ng-repeat 生成的按钮。
<div ng-app="myApp" ng-controller="myCtrl">
<table border="1" width="100%">
<tr>
<th>Employee ID</th>
<th>Employee Name</th>
<th>Status</th>
</tr>
<tr ng-repeat="detail in details" align="center">
<td>{{detail.EmployeeID}}</td>
<td>{{detail.EmployeeName}}</td>
<td>
<asp:Button ID="btnDelete" Text="Delete Request" runat="server" OnClick="btnDelete_Click"/>
</td>
</tr>
</table>
当我使用 ID="btnDelete" 在 ASP.net 按钮上使用 jQuery 函数时,jQuery 在 ng-repeat 中不起作用。
下面是我的 Angular JS 和 jQuery 代码。
<script type="text/javascript">
$(document).ready(function (e) {
e.stopPropagation();
$(this).children().toggleClass('active');
$('[id$=btnDelete]').on("click", function () {
alert("hi...");
});
});
</script>
<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 = response.data.UserDetail;
$scope.details = [];
var data = x2js.xml_str2json(response.data);
$scope.details = data.UserDetail.Detail;
});
});
即使我已经在 jQuery 中处理了这个问题,但仍然无法正常工作,所以请有人在这种情况下帮助我
【问题讨论】:
-
通常当 angular 加载到你的页面时,最好在选择 jquery 元素时使用 angular.element('item') 而不是 $(),对于 click 和其他事件函数,最好使用ng 事件属性
-
事实上,这可能是你的全部问题是 jquery 函数在你的 ng-repeat 运行之前运行,所以点击函数永远不会附加到元素上
-
为什么你不使用
ng-click指令?在这里使用asp按钮控件有什么具体原因吗?您是否也要编写服务器端按钮单击处理程序? @Binvention 是正确的,您的 jQuery 事件未附加。 -
@Binvention,您能否通过演示进一步解释这一点?我可以更好地联系起来。
-
我将添加一个示例作为答案
标签: javascript jquery asp.net angularjs