2015-06-02 4 views
1

Я сделал AngularJS директиву, что я загрузить на моей домашней странице, а также у меня есть JQuery файл, где я называю alert('it works') когда <p> Click </p> элемент щелкнул. Вот пример.Как связать событие click с директивой AngularJS с JQuery?

/* 
* This is the directive 
*/ 

outsource.directive('mydirective', function() { 
    return { 
     restrict: 'E', 
     link: function(scope, element, attribute) { 
      // Link 
     }, 
     replace: true, 
     templateUrl: 'src/app/components/views/directive.html' 
    }; 
}); 

directive.html файл

<p id="clicked"> Click </p> 

JQuery функция

$(document).ready(function() { 
    $("#clicked").click(function() { 
     alert('it works'); 
    }); 
}); 

Это всего лишь простой вопрос для моей реальной проблемы. Я замечаю, что угловая директива загружается медленнее, чем моя функция, которая запускает предупреждающее сообщение. Из-за этого у меня ничего не выбрано моим селектором $("#clicked").

* Как я могу использовать угловую директиву с jquery? Каков правильный способ решить эту проблему с jquery-угловым рядом с использованием jqlite? *

ответ

8

Не используйте jQuery, если у вас есть AngularJS. Вы можете использовать ng-click of AngularJS, чтобы связать событие click.

HTML

<p ng-click="clickHandler()">...</p> 

JavaScript

В контроллере

$scope.clickHandler = function() { 
    alert('clicked'); 
}; 

EDIT

Тем не менее вы хотите использовать jQuery (Не рекомендуется):

$(document).on('click', "#clicked", function() { 
    alert('it works'); 
}); 
+2

Хорошо, я знаю, как использовать ng-click. Но что, если у меня есть 20 элементов, где я должен запускать предупреждающее сообщение? Как я могу это сделать? С jquery я просто выбираю все элементы и присоединяю к ним событие. –

+0

@ VeskoVujovic No. Добавить 'ng-click' для всех из них – Tushar

0

Вы можете использовать угловой ng-click. См. Это docs.

Директива ngClick позволяет указать пользовательское поведение при нажатии элемента .

Итак, почему вы хотите использовать jQuery? AngularJs обеспечивают лучший способ обработки событий для директив, использовать их.

+2

Ответ, собственно говоря, правильный; но говоря о качестве, ответ Тушара выше. Он говорит то же самое, но _explains_ это и дает реальный ответ. –

+0

Я даже не убежден, что это * ответит на вопрос. Это скорее комментарий – CodingIntrigue

Смежные вопросы