私が持っているとしましょう:
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は未定義です。これは、AngularがDOMを処理する方法が原因であると考えています。innerHTMLを取得する正しい方法は何ですか?
element
関数に渡されるlink
変数は、DOMオブジェクトではなくjqLiteオブジェクトです。 _element[0]
_(jQueryの場合と同様)でDOMオブジェクトを取得できますが、jqLiteはelement.html()
というメソッドを提供します。 docs をご覧ください。