2014-12-20 20 views

risposta

31

È possibile utilizzare prop() da jqlite angolare. per selezionare un elemento è possibile utilizzare querySelector() che restituisce primo elemento di corrispondenza o querySelectorAll(), che restituisce tutte elemento corrispondente

angular.element(document.querySelector('yourelement')).prop('offsetLeft'); 

o se il "questo" è elemento DOM valido

angular.element(this).prop('offsetLeft'); 

Esempio per div

è possibile fare riferimento l'oggetto DOM con $ evento in html e passarlo alla funzione sul controller

<div ng-click="myfunction($event)"></div> 

controller

$scope.myfunction = function($event){ 
console.log(angular.element($event.target).prop('offsetLeft')); 

} 

Demo

app = angular.module('test',[]); 
 
app.controller('testctrl',function($scope){ 
 

 
    
 
    $scope.myfunction = function($event){ 
 
    console.log($event); 
 
off =angular.element($event.target).prop('offsetLeft'); 
 
    angular.element($event.target).text(off) 
 

 
} 
 
    
 
});
.divvy{position:absolute; left:60px; 
 
width:100px; background:red; 
 
}

 

 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-controller="testctrl" ng-app="test"> 
 
    <div class="divvy" ng-click="myfunction($event)" >Click to see position</div> 
 
    </div>

+0

Grazie per la risposta. Posso usare $ scope per ottenere la posizione? – user1995781

+0

$ scope non è valido Elemento DOM è possibile utilizzare il nome del tag di classe ot in querySelector ('') –

+0

lo si sta utilizzando in un evento click/hover? –

Problemi correlati