在一个指令中,我希望得到getBoundingClientRect()
的结果,这个DOM元素不在指令的element
附近。
我应该怎么做?刚刚返回该对象的服务?在服务中使用DOM逻辑是否可以?
答案 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');
}
}
});