Подтвердить что ты не робот

AngularJS element.innerHTML undefined изнутри директивы

Скажем, у меня есть:

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);
            });

        }
    }
});

... тогда innerHTML есть undefined. Я предполагаю, что это связано с тем, как Angular обрабатывает DOM. Каков правильный способ получить innerHTML?

4b9b3361

Ответ 1

Переменная element, передаваемая вашей функции link, представляет собой объект jqLite, а не объект DOM. Вы можете получить объект DOM с помощью element[0] (как вы могли бы в jQuery), но jqLite предоставляет вам метод: element.html(). Проверьте docs.