Não ficou claro para mim por que depois de element eu tenho que informar que é o elemento "[0]". Se trata de um array?
Não ficou claro para mim por que depois de element eu tenho que informar que é o elemento "[0]". Se trata de um array?
Fala ai Einstein, já faz tempo que fiz o curso então não lembro como está o código completo, mas, sobre sua dúvida, foi necessário informar [0]
para acessar a posição 0 do array
, ou seja, acessar o primeiro item (arrays começam contando em 0).
Se você não passar os colchetes e índice estaria acessando o array completo.
Espero ter ajudado.
Deixa eu colar o código aqui para ficar mais fácil a ajuda:
Na diretiva ele colocou assim:
angular.module('minhasDiretivas', [])
//Outros códigos
.directive('meuFocus', function(){
var ddo = {};
ddo.restrict = "A";
ddo.link = function(scope, element) {
scope.$on('fotoCadastrada', function(){
element[0].focus();
});
};
return ddo;
})
A dúvida é a seguinte: Porquê ele está colocando um array no element e onde ele declarou esse array.
No HTML ele chama a diretiva assim:
<a href="/" class="btn btn-primary" meu-focus>Voltar</a>
Fala ai Einstein, como faz muito tempo que fiz o curso, não lembro nada dos códigos referente ao mesmo, vou pedir para o Flávio (autor do curso) me ajudar aqui e ele já responde.
O element não é um elemento do DOM, é um Query Object. Ele encapsula o elemento do DOM. Para termos acesso ao elemento do DOM encapsulado por ele, precisamos fazer elemento[0]. Se você já trabalhou com jQuery é a mesma coisa. Parece que o elemento é um array, mas não. É simplesmente um wrapper.