Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击不触发超链接_Javascript_Html_Angularjs - Fatal编程技术网

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
  }