Estou tentando remover o jquery do meu aplicativo Angular.js para torná-lo mais leve e colocar o jqLite do Angular no lugar. Mas o aplicativo faz uso intenso de find ('# id') e find ('.classname'), que não são suportados pelo jqLite, apenas 'nomes de tag' (conforme documentação)
gostaria de saber qual você acha que seria a melhor abordagem para mudá-lo. Uma abordagem em que pensei é criar tags HTML personalizadas. por exemplo: mudança
<span class="btn btn-large" id="add-to-bag">Add to bag</span>
para
<a2b style="display:none;"><span class="btn btn-large" >Add to bag</span></a2b>
e
$element.find('#add-to-bag')
para
$element.find('a2b')
Alguma ideia? outras idéias?
obrigado
Lior
DomElement.querySelector(".myclassname")
para selecionar um único elemento descendente usando um seletor css, ou todas as correspondências adicionando All a ele:DomElement.querySelectorAll(".myclassname")
Isso obviamente não funciona no IE <9.a2b
elemento, deve ter definido uma diretiva. Você pode fazer o que precisa ser feito na função de link da diretiva e, portanto, evitar a necessidade de chamar find () inteiramente? Da mesma forma com suas classes - você pode definir diretivas e colocar a funcionalidade de que precisa nas funções de link (ou compilar) das diretivas?Respostas:
Essencialmente, e conforme observado por @ kevin-b:
Nota: Se você está procurando fazer isso de seus controladores, pode dar uma olhada na seção "Usando controladores corretamente" no guia do desenvolvedor e refatorar sua lógica de apresentação em diretivas apropriadas (como <a2b ...>) .
fonte
angular.element(elem[0].querySelector('.classname'));
angualr usa a versão mais leve do jquery, chamada de jqlite, o que significa que não possui todos os recursos do jQuery. aqui está uma referência na documentação do angularjs sobre o que você pode usar no jquery. Angular Element docs
No seu caso, você precisa encontrar um div com ID ou nome de classe. para o nome da classe você pode usar
ou você pode usar uma maneira muito mais simples pelo seletor de consulta
não é tão flexível quanto jQuery, mas o que
fonte
Se
elem.find()
não estiver funcionando para você, verifique se está incluindo o script JQuery antes do script angular ....fonte