2016-06-12 8 views
1

У меня есть меню и используйте ng-repeat для цикла для моей категории, и в этом цикле у меня есть тег ссылки, и я хочу, чтобы при щелчке по этой ссылке делали что-то в файле js. Но я не могу получить доступ к тегу a в javascript и добавить событие click к этому элементу.связать событие click с элементом в ng-repeat angular

Вот мой нг-повторить код:

<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() 
}); 
+1

Если вы используете Angular JS, почему бы не использовать 'ng-click'? – Rajesh

ответ

2

Использование ng-click. Его можно использовать как атрибут элемента. Пример использования:

HTML:

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

Контроллер:

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

См http://jsfiddle.net/ax6k3z1e/

1

Возможная причина может заключаться в том, что вы Javascript является выполняются до того, как DOM готов. Вы должны использовать ng-click, так как хорошо использовать Угловой способ, когда вы используете AngularJS в своем приложении.

0

нг-Repeat имеют тенденцию связывать свой объект переборе, а также. Ниже приведен пример этого.

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

Указать ниже упомянутый код в вашем подключенном контроллере.

$scope.ShowAlert=function(element){ 
alert(element.Name); 
} 
Смежные вопросы