2015-06-03 6 views
10

Ниже вы можете увидеть мой код для данной директивы.Использование JQuery внутри директивы AngularJS хорошая или плохая идея?

Мой вопрос: "Могу ли я использовать JQuery с директивами Это хорошая идея, если не почему??"

outsource.directive('dedicated', function(){ 

     return { 
      restrict: 'E', 
      link: function(scope, element, attribute){ 

       $("#klik").click(function(){ 
        alert('works'); 
       }); 

      }, 

      replace: true, 
      templateUrl: 'src/app/components/views/dedicated-prices.html' 
     }; 
    }); 

P.s этот код работает.

+2

Это зависит только от того, сколько вы хотите «уйти» от 'jQuery'. Я видел во многих SO-темах, что люди больше предпочитают использовать 'AngularJS' * или *' jQuery', но не оба. Добавление 'jQuery' к режиссуре« не так уж плохо »(не самый лучший выбор в любом случае), но он добавляет другую зависимость ... –

ответ

5

Вы не должны использовать jquery, поскольку сам Угловой имеет более легкую версию, известную как jqlite.

Больше документации на JQLITE

Так ваша директива должна выглядеть следующим образом:

outsource.directive('dedicated', function(){ 

    return { 
     restrict: 'E', 
     link: function(scope, element, attribute){ 

      var elem = angular.element(document.querySelector('#klik')) 
      angular.element(elem).triggerHandler('click'); 

     }, 

     replace: true, 
     templateUrl: 'src/app/components/views/dedicated-prices.html' 
    }; 
}); 
+0

Вы можете использовать либо. Это не должно быть проблемой, потому что это зависит от вас, если вы выберете jqLite или jQuery – Lau

+0

Есть ли более подробная документация или примеры jqlite в Интернете? Или, может быть, книга? –

+0

ng-book - это, безусловно, первая остановка, которую я бы предложил. Позвольте мне найти ссылки на youtube для u – V31

1

Интересный вопрос. У меня есть jquery с выбором элементов в некоторых директивах/контроллерах в моей кодовой базе.

Я всегда чувствую себя грязным, используя его, и делаю это только тогда, когда мне действительно нужно, к сожалению, это почти всегда бомба замедленного действия, и приводит меня к тому, что я проклинаю себя несколько месяцев назад и рефакторинг, чтобы использовать более угловатый метод.

Посмотрите, есть ли уродный угловой способ делать то, что вы пытаетесь сделать, вы не пожалеете об этом!

2

Простой ответ: ДА (Просто смотрите jquery.js выше Angular.js в HTML странице jqLite будет заменено на JQuery.)

Вы бы использовать JQuery для манипулирования DOM & есть много дискуссий, происходящих этот вопрос (использовать или нет в современных браузерах).

Один из популярных постов в recentdays: http://lea.verou.me/2015/04/jquery-considered-harmful/

Несмотря на все, JQuery все еще очень популярны, широко применяется библиотека DOM. И он легко работает со многими современными интерфейсами пользовательского интерфейса.

+0

Так хорошая идея или плохая идея? – technophyle

+1

JQuery - хорошая библиотека для манипуляции с Dom. Я не чувствую себя плохо в использовании. И, проекты, которые я работал, используют JQuery с angular.js – Navaneeth

+0

, это определенно плохая идея, после одного года опыта работы в Angular это плохая плохая идея .... (используйте jquery с угловым), только если вам нужен какой-то слайдер который вы не можете найти в угловом –

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