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