Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AngularJS element.innerHTML is undefined from within directive

Let's say I have:

directives.directive('foo', function () {
    return {
        restrict:'A',
        scope: true,
        link:function (scope, element, attr) {

            console.log('innerHTML is ' + element.innerHTML);

            scope.$watch('update', function (newValue) {
                console.log('innerHTML is... ' + element.innerHTML);
            });

        }
    }
});

... then innerHTML is undefined. I imagine this is due to the way Angular processes the DOM. What is the right way to obtain the innerHTML?

like image 871
Robert Christian Avatar asked Feb 10 '13 17:02

Robert Christian


1 Answers

The element variable that is passed to your link function is a jqLite object - not a DOM object. You can obtain the DOM object with element[0] (like you could in jQuery), but jqLite provides a method for you: element.html(). Check out the docs.

like image 188
Josh David Miller Avatar answered Nov 13 '22 17:11

Josh David Miller