Estoy tratando de eliminar jquery de mi aplicación Angular.js para hacerla más liviana y poner jqLite de Angular en su lugar. Pero la aplicación hace un uso intensivo de find ('# id') y find ('.classname'), que no son compatibles con jqLite, solo 'nombres de etiquetas' (según la documentación)
se preguntó cuál crees que sería el mejor enfoque para cambiarlo. Un enfoque en el que pensé es crear etiquetas HTML personalizadas. por ejemplo: cambiar
<span class="btn btn-large" id="add-to-bag">Add to bag</span>
a
<a2b style="display:none;"><span class="btn btn-large" >Add to bag</span></a2b>
y
$element.find('#add-to-bag')
a
$element.find('a2b')
¿Alguna idea? ¿otras ideas?
Gracias
Lior
DomElement.querySelector(".myclassname")
para seleccionar un solo elemento descendiente usando un selector css, o todas las coincidencias agregando All:DomElement.querySelectorAll(".myclassname")
eso, por supuesto, no funciona en IE <9.a2b
elemento, debe haber definido una directiva. ¿Puede hacer lo que debe hacerse en la función de enlace de la directiva y, por lo tanto, evitar la necesidad de llamar a find () por completo? De manera similar con sus clases, ¿puede definir directivas y poner la funcionalidad que necesita en las funciones de enlace (o compilación) de las directivas?Respuestas:
Esencialmente, y como lo señaló @ kevin-b:
Nota: Si está buscando hacer esto desde sus controladores, es posible que desee echar un vistazo a la sección "Usar los controladores correctamente" en la guía para desarrolladores y refactorizar su lógica de presentación en las directivas apropiadas (como <a2b ...>) .
fuente
angular.element(elem[0].querySelector('.classname'));
angualr usa la versión más ligera de jquery llamada jqlite, lo que significa que no tiene todas las características de jQuery. aquí hay una referencia en los documentos de angularjs sobre lo que puede usar desde jquery. Documentos de Angular Element
En su caso, necesita encontrar un div con ID o nombre de clase. para el nombre de la clase que puede usar
o puede usar una forma mucho más simple mediante el selector de consultas
no es tan flexible como jQuery pero lo que
fuente
Si
elem.find()
no funciona para usted, verifique que esté incluyendo el script JQuery antes del script angular ...fuente