web-dev-qa-db-ja.com

AngularJS element.innerHTMLはディレクティブ内から未定義です

私が持っているとしましょう:

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を取得する正しい方法は何ですか?

15

element関数に渡されるlink変数は、DOMオブジェクトではなくjqLit​​eオブジェクトです。 _element[0]_(jQueryの場合と同様)でDOMオブジェクトを取得できますが、jqLit​​eはelement.html()というメソッドを提供します。 docs をご覧ください。

40