Não ficou claro para mim por que depois de element eu tenho que informar que é o elemento "[0]". Se trata de um array?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.