繁体   English   中英

将click事件绑定到ng-repeat angular中的元素

[英]bind click event to the element in ng-repeat angular

我有菜单,并使用ng-repeat for循环到我的类别,在这个循环中我有一个链接标记,我想点击这个链接在js文件中做一些事情。 但我无法在javascript中访问标记a并将click事件添加到此元素。

这是我的ng-repeat代码:

<li class="has-children" ng-repeat="category in categories  |filter:{ level: 1 } : true" ng-if="$index < 5">
    <a class="parent-link">{{category.categoryName}}</a>
    <ul class="is-hidden">
        <li class="go-back"><a>{{category.categoryName}}</a></li>
        <li ng-repeat="submenu in categories |filter:{ parentID: category.categoryID } : true"><a>{{submenu.categoryName}}</a></li>
    </ul>
</li>

这是我的js文件(此代码不会触发):

$(".parent-link").on("click", function(e) {
  console.log("clicked");
  e.prenvetDefault()
});

使用ng-click 它可以用作元素的属性。 用法示例:

HTML:

<div ng-click="changeWord()">
   {{word}}
</div>

控制器:

$scope.changeWord = function () {
    $scope.word = 'I am changed';
}

http://jsfiddle.net/ax6k3z1e/

可能的原因可能是您在DOM准备好之前执行了Javascript。 您应该使用ng-click因为在您的应用程序中使用AngularJS时,可以通过Angular方式进行构建。

ng-Repeat也有绑定迭代对象的倾向。 以下是相同的例子。

<div ng-repeat='ele in elements'>
<p ng-click='ShowAlert(ele)'>{{ele.name}}</p>
</div>

在链接的控制器中指定下面提到的代码。

$scope.ShowAlert=function(element){
alert(element.Name);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM