如何将链接的id传递给angularJS控制器?

时间:2018-06-05 18:38:42

标签: javascript angularjs

我有这样的事情:

<a href="#" title="Post 1" id="car1"> Audi car 
</a>

<a href="#" title="Post 1" id="car2"> BMW car 
</a>

如何将id传递给控制器​​?我尝试了以下方法:

<a href="#" title="Post 1" id="car1" onclick="getCarID(this.id)" > Audi car  </a>

这可以在Angular控制器之外工作,但我希望它在控制器内,所以我想出我需要使用ng-click但是this.id将不起作用。如何使它工作? 我的控制器和getCarID我有这样的地方:

angular.module('myModule')
.controller('carController', function($scope)
{

$scope.getCarID = function(elementID)
    {  
        var car = document.getElementById(elementID);
        console.log(elementID + " is being pressed");
    }
)}

如果某些内容不明确或需要额外解释,请将其评论出来,我将编辑问题。

感谢您的时间

2 个答案:

答案 0 :(得分:1)

如何使用该活动的目标ID?

<a href="#" title="Post 1" id="car1" ng-click="getCarID($event)">

在你的控制器中:

$scope.getCarID = function(event) {
   var id = event.target.id;
}

&#13;
&#13;
function Ctrl($scope) {

    $scope.action = function(event) {
        console.log('clicked id is: ' + event.target.id);
    };
}
&#13;
<!doctype html>
<html ng-app>
   <head>
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
   </head>
   <body>
      <div ng-controller="Ctrl">
         <a id="123" ng-click="action($event)">click</a>
      </div>
   </body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您需要添加缺少的引号<a href="#" title="Post 1" id="car1" onclick="getCarID(this.id)" > Audi car </a>