2015-04-21 2 views
2

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

<mouse-enter>HI</mouse-enter> 

JS:

angular.module('custom.directive').directive('mouseEnter', function() { 
    return { 
     restrict: 'E', 
     link: function (scope, element) { 
      console.log(element);// this line prints an array! 
      element[0].onmouseover = function() { 
       console.log('Mouse Entered!'); 
      }; 
     } 
    } 
}); 

В этом случае длина этого массива может быть больше 1 !!

+3

Селекторы jquery/jqLite всегда возвращают массивы - вот что такое «элемент». – pixelbits

ответ

4

Секундомеры jQlite от Angular являются псевдонимом функции jQuery, когда jQuery доступен, иначе jQlite будет встроенным небольшим подмножеством jQuery от Angular.

Таким образом, селектор jQlite или jQuery всегда возвращает массив.

https://docs.angularjs.org/api/ng/function/angular.element

Рассмотрит следующую DOM структуру:

<div id="test"> 
    <div class="foo bar" id="dom-element-1">Hello</div> 
    <p>ignore me</p> 
</div> 

<span class="foo" id="dom-element-2">Hello again</div> 

Теперь, когда вы либо из этого: $(".foo") или angular.element(document.querySelectAll(".foo")), вы получите экземпляр jQlite или JQuery, который будет массивом из двух йот элементы с идентификаторами dom-element-1 и dom-element-2.

+0

массив чего? Можете ли вы дать мне структуру DOM, которая предоставит более одного значения в этом массиве? – antiMatter

+0

@antiMatter, я обновил ответ на примере того же самого. –

+0

получил это !!! это помогло и именно то, что я хотел знать! благодаря :) – antiMatter

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