我有菜单并使用ng-repeat
循环到我的类别,在这个循环中我有一个链接标记,我想在点击此链接时在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()
});
答案 0 :(得分:2)
使用ng-click
。它可以用作元素的属性。用法示例:
HTML:
<div ng-click="changeWord()">
{{word}}
</div>
控制器:
$scope.changeWord = function () {
$scope.word = 'I am changed';
}
答案 1 :(得分:1)
可能的原因可能是您在DOM准备好之前正在执行Javascript。在应用程序中使用AngularJS时,应该使用ng-click
作为Angular方式进行构建。
答案 2 :(得分:0)
ng-Repeat也有绑定迭代对象的倾向。以下是相同的例子。
<div ng-repeat='ele in elements'>
<p ng-click='ShowAlert(ele)'>{{ele.name}}</p>
</div>
在链接的控制器中指定下面提到的代码。
$scope.ShowAlert=function(element){
alert(element.Name);
}