Как отслеживать положение мыши каждые 3 секунды с AngularJS? - PullRequest
0 голосов
/ 24 сентября 2019

Я работаю над приложением стека MEAN, и мне нужно каждые 3 секунды отслеживать положение мыши, сохранять эти данные в массиве и затем сохранять их в своей базе данных.

Я начал с этого, но яне знаю, как это сделать:

HTML

<div class="field" ng-mousemove="captureCoordinate($event)">

My view is inside here

</div>

JavaScript


//I need to save this into my database
const data = {
      minutes,
      seconds,
      playerId,
      level,
      clicks,
      objectsToFind,
      tracking[]       <--- this should be the array with the tracking info
    }


//This is what I tried to get the mouse coordinates from my HTML
$scope.captureCoordinate = function($event){
      $scope.x = $event.x;
      $scope.y = $event.y;
   }

1 Ответ

0 голосов
/ 24 сентября 2019

Вы можете сохранить координаты в локальной переменной при перемещении мыши, а затем обновлять переменную области действия каждые 3 секунды со значением этой локальной переменной.

Что-то вроде:

var app = angular.module("myApp", []);

app.controller('myApp', ['$scope', function($scope) {
  const data = {
    tracking: []
  }
  let coords;
  $scope.trackCoords = function($event) {
    coords = [$event.pageX, $event.pageY];
  };
  setInterval(function() {
    data.tracking = coords;
    console.log(data.tracking);
  }, 3000);


}]);
.field {
  margin: 2%;
  height: 500px;
  border: 1px solid black;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script>
<div ng-controller="myApp" ng-app="myApp" class="field" ng-mousemove="trackCoords($event)">
  My view is inside here
</div>
...