Javascript 单击不触发超链接
我在努力学习英语。我创建了一个简单的视图,如下所示:Javascript 单击不触发超链接,javascript,html,angularjs,Javascript,Html,Angularjs,我在努力学习英语。我创建了一个简单的视图,如下所示: <!DOCTYPE html> <html ng-app="MyApp"> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script> <link rel="stylesheet" href="style.css" /&
<!DOCTYPE html>
<html ng-app="MyApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="MyCtrl">
<div>
<table ng-repeat="d in Details">
<tr>
<td>{{d.Name}}</td>
<td>{{d.Salary}}</td>
<td><a href="#" ng-click="ShowDetail(d)">Select</a></td>
</tr>
</table>
</div>
</body>
</html>
问题是当我点击超链接“选择”超链接时,我没有看到任何事件触发。请提供帮助。代替
var showdeail
,尝试使用$scope.showdeail正如Amar提到的,使用$scope.showdeail
代替var
并在函数中添加event.preventDefault(),以确保href不会触发。在Angular中,您的控制器处理与视图的交互。因此,视图中的任何事件都由相应的控制器处理
视图和控制器通过$scope
紧密耦合。因此,任何变量、对象或事件处理程序都必须在$scope
上公开,以便在视图中访问它们
由于您正在调用,showdeail
,它是在您的控制器中定义的,它仍然是一个正常的JS函数,而不是在Angular的上下文中。要在视图中使用相同的内容,需要通过$scope
公开它
因此,您的函数应该声明如下:
$scope.showDetail = function() {
// your logic goes here
}
你怎么知道有人叫它?你放断点了吗?我怀疑它被调用了,但警报在窗口范围内,默认情况下不可用。
$scope.showDetail = function() {
// your logic goes here
}