我通常需要元素的范围,例如$(element).scope()
或angular.element(..).scope()
但现在我遇到了相反的问题 - 我有一个范围,我需要找到生成它的元素。
如何从开发者控制台中找出它是哪个元素?
我正在处理别人的代码,修复错误。
我仍然想弄清楚一些东西,但有些代码很难理解。非常通用和大量的复制粘贴,因此搜索并不总是有帮助。
有很多使用父范围的ng-includes和指令。
有一种观点以某种方式调用服务 - 目前尚不清楚如何......
我确实有一个范围的引用,它与触发该功能的视图中的范围不同。
因此,如果我找到该范围来自的元素,它可以理清它们之间的关系等。至少给我一些带头。
显然,将来需要进行一些重构和最佳实践,但我必须首先关注这个错误。
答案 0 :(得分:1)
我什么都不知道'开箱即用',但每个$ scope变量都有一个唯一的$ id属性;此外,每个具有$ scope的元素都标有' ng-scope'类。所以有一些类似于以下非常丑陋的方法!可能有所帮助(我假设你有jQuery;否则替换angular' squeryLite方法):
function findById(id) {
var els = $('.ng-scope');
for (var i=0; i<els.length; i++) {
if ($(els[i]).scope().$id===id) {
return els[i];
}
}
return null;
}
如果这确实有用,那么我觉得你的调试很痛苦。