AngularJS element.innerHTML 在指令内未定义

Posted

技术标签:

【中文标题】AngularJS element.innerHTML 在指令内未定义【英文标题】:AngularJS element.innerHTML is undefined from within directive 【发布时间】:2013-01-25 20:44:27 【问题描述】:

假设我有:

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的正确方法是什么?

【问题讨论】:

【参考方案1】:

传递给link 函数的element 变量是一个jqLit​​e 对象,而不是DOM 对象。您可以使用element[0] 获取DOM 对象(就像在jQuery 中一样),但jqLit​​e 为您提供了一个方法:element.html()。查看docs。

【讨论】:

谢谢。正是我所缺少的。

以上是关于AngularJS element.innerHTML 在指令内未定义的主要内容,如果未能解决你的问题,请参考以下文章

初识AngularJS

AngularJs初识

[angularjs] angularjs系列笔记简介

[angularjs] angularjs系列笔记事件

AngularJS

[angularjs] angularjs系列笔记模型