如何获取使用Angular js绑定的div的内容?

时间:2014-12-09 22:09:50

标签: javascript html angularjs

我想获得包含角度范围绑定数据的div的内容。

<div id='someDiv'> <h1> {{someText}} </h1> </div>

控制器中的位置

$scope.someText = 'Hello World';

innerHtml属性不起作用。 document.getElementById(&#39; someDiv&#39;)。innerHtml不起作用,因为它返回未绑定的变量

var content = document.getElementById(&#39; someDiv&#39;)。innerHtml; 的console.log(内容);

导致记录<h1> {{someText}} </h1>

我希望它在变量绑定到它之后返回div内容的值'<h1> Hello World! </h1>'

如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

您需要在angular中使用$ timeout服务。可能会创建一个指令来提取HTML,因为没有确定的方法可以知道何时在角度之外完成摘要周期。

以下是此类指令的示例:

module.directive('getRenderedHtml', function($timeout) {
    return {
        controller: function ($scope) {
            return {};
        },
        requires: 'getRenderedHtml',
        link: function(scope, element, attrs, thisController) {
            var rawHtmlContainer = angular.element('<div></div>');
            $timeout(function() {
                thisController.html = element[0].innerHTML;
            });
        }
    }
});

http://jsfiddle.net/rnpn8rj0/