我使用Angular在我的html中使用ng-include包含模板,我使用jQuery .find()来做一些事情,比如:
$('.selector').find('.myClass').each(function(){
// do stuff
})
似乎有类' myClass'的元素jQuery .find()中根本看不到模板中包含的内容。
有没有办法实现这个目标?
提前非常感谢你。
答案 0 :(得分:1)
问题是 - DOM渲染。你需要做那样的事情:
$timeout(function () {
angular.element('.selector').find('.myClass').each(function(){
// do stuff
})
})
如果是外部jQ文件,那么试试这个:
setTimeout(function () {
$('.selector').find('.myClass').each(function(){
// do stuff
})
}, 0)
答案 1 :(得分:-1)
来自https://docs.angularjs.org/api/ng/function/angular.element
jqLite是一个微小的API兼容的jQuery子集,它允许Angular以跨浏览器兼容的方式操作DOM。 jqLite仅实现最常用的功能,目标是占用空间非常小。
假设您的代码示例位于Angular控制器或指令中,您不处理“普通”jQuery。为了使用所有jQuery函数,请在angular之前包含jQuery。