Я пытаюсь удалить jquery из своего приложения Angular.js, чтобы сделать его светлее, и вместо этого поставил jqLite от Angular. Но приложение интенсивно использует find ('# id') и find ('.classname'), которые не поддерживаются jqLite, а только 'имена тегов' (согласно документации)
Интересно, что, по вашему мнению, было бы лучшим способом изменить это. Один из подходов, о котором я подумал, - это создание собственных HTML-тегов. например: изменить
<span class="btn btn-large" id="add-to-bag">Add to bag</span>
к
<a2b style="display:none;"><span class="btn btn-large" >Add to bag</span></a2b>
и
$element.find('#add-to-bag')
к
$element.find('a2b')
Есть предположения? другие идеи?
Спасибо
Лиор
DomElement.querySelector(".myclassname")
для выбора одного дочернего элемента с помощью селектора css или всего соответствия, добавив к нему All:DomElement.querySelectorAll(".myclassname")
это, конечно, не работает в IE <9.a2b
элемент, вы должны определить директиву. Можете ли вы сделать то, что нужно сделать в функции ссылки директивы, и, следовательно, полностью избежать необходимости вызывать find ()? Точно так же и с вашими классами - можете ли вы определить директивы и добавить нужную функциональность в функции ссылки (или компиляции) директив?Ответы:
По сути, как было отмечено @ kevin-b:
Примечание. Если вы хотите сделать это со своих контроллеров, вы можете взглянуть на раздел «Правильное использование контроллеров» в руководстве для разработчиков и преобразовать логику представления в соответствующие директивы (например, <a2b ...>) .
источник
angular.element(elem[0].querySelector('.classname'));
angualr использует более легкую версию jquery, называемую jqlite, что означает, что она не имеет всех функций jQuery. вот ссылка в документах angularjs о том, что вы можете использовать из jquery. Документы по Angular Element
В вашем случае вам нужно найти div с идентификатором или именем класса. для имени класса вы можете использовать
или вы можете использовать гораздо более простой способ с помощью селектора запросов
он не такой гибкий, как jQuery, но что
источник
Если
elem.find()
у вас не работает, убедитесь, что вы включаете скрипт JQuery перед скриптом angular ....источник