Ich versuche, jquery aus meiner Angular.js-App zu entfernen, um sie leichter zu machen, und stattdessen Angulars jqLite zu verwenden. Die App verwendet jedoch häufig find ('# id') und find ('.classname'), die von jqLite nicht unterstützt werden, sondern nur 'tag names' (gemäß Dokumentation).
Ich fragte mich, was Ihrer Meinung nach der beste Ansatz wäre, um es zu ändern. Ein Ansatz, über den ich nachgedacht habe, ist das Erstellen benutzerdefinierter HTML-Tags. Zum Beispiel: ändern
<span class="btn btn-large" id="add-to-bag">Add to bag</span>
zu
<a2b style="display:none;"><span class="btn btn-large" >Add to bag</span></a2b>
und
$element.find('#add-to-bag')
zu
$element.find('a2b')
Irgendwelche Gedanken? andere Ideen?
Vielen Dank
Lior
a2b
Element definieren , müssen Sie eine Direktive definiert haben. Können Sie das tun, was in der Link-Funktion der Direktive zu tun ist, und daher die Notwendigkeit vermeiden, find () vollständig aufzurufen? Ähnlich wie bei Ihren Klassen - können Sie Direktiven definieren und die benötigte Funktionalität in die Verknüpfungs- (oder Kompilierungs-) Funktionen der Direktiven einfügen?
DomElement.querySelector(".myclassname")
ein einzelnes dekendierendes Element mit einem CSS-Selektor oder alle übereinstimmenden Elemente auswählen, indem Sie Alle hinzufügen:DomElement.querySelectorAll(".myclassname")
Das funktioniert natürlich nicht in IE <9.