0
在指令內我想獲得getBoundingClientRect()
的結果getBoundingClientRect()
,該元素不在指令的element
附近。獲取指令外的元素的邊界矩形
我應該怎麼辦?只返回該對象的服務?可以在服務中使用DOM邏輯嗎?
在指令內我想獲得getBoundingClientRect()
的結果getBoundingClientRect()
,該元素不在指令的element
附近。獲取指令外的元素的邊界矩形
我應該怎麼辦?只返回該對象的服務?可以在服務中使用DOM邏輯嗎?
我建議傳遞指令需要與之交互的元素的id作爲指令的一個屬性。然後使用文檔對象獲取該元素的句柄。
參見: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');
}
}
});
我想傳入一個選擇器,但是如果有相同指令的很多實例,每個實例都會無用地查詢DOM。我只想問一次,並得到第一個查詢後沒有改變的邊界矩形。 – Francisc