问题
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?
回答1:
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.
来源:https://stackoverflow.com/questions/14800443/angularjs-element-innerhtml-is-undefined-from-within-directive