获取指令之外的元素的边界矩形

时间:2014-01-14 13:58:32

标签: angularjs angularjs-directive

在一个指令中,我希望得到getBoundingClientRect()的结果,这个DOM元素不在指令的element附近。

我应该怎么做?刚刚返回该对象的服务?在服务中使用DOM逻辑是否可以?

1 个答案:

答案 0 :(得分:1)

我建议将指令需要与之交互的元素的id作为指令的属性传递。然后使用document对象获取该元素的句柄。

请参阅:http://jsfiddle.net/afX63/6/

您显然需要直接使用原始DOM元素来访问您感兴趣的信息。

您的加价:

<my-directive handle-id="thatOne"/>

<div id="thatOne">Your directive can find this element easily now</div>

你指示:

app.directive('myDirective', function () {
    return {
        link: function (scope, elem, attrs) {
            var theHandle = angular.element(document.getElementById(attrs.handleId));
            theHandle.text('Changed it');
        }
    }
});