SimplGy SimplGy - 1 month ago 13
AngularJS Question

Get DOM element by scope $id

I understand I can get the scope by element:

scope = angular.element($0).scope();
scope.$id; // "003"


How do I get reverse: Find the DOM element using the scope
$id
, such as
003
?

I'd like to do this for debugging purposes. My scope tree shows something and I'd like to identify where it came from.

Answer

Although it's not very sexy each dom node gets a class ng-scope so you could tech do something like this maybe:

function getScope(id) {
var elem;
$('.ng-scope').each(function(){
    var s = angular.element(this).scope(),
        sid = s.$id;

    if(sid == id) {
        elem = this;
        return false; // stop looking at the rest
    }
});
return elem;
}
Comments