在AngularJs中,如何从控制器绑定和解除绑定mousemove数据?
我已绑定应用程序的mousemove以检查用户是否仍在使用它:在AngularJs中,如何从控制器绑定和解除绑定mousemove数据?,angularjs,Angularjs,我已绑定应用程序的mousemove以检查用户是否仍在使用它: <body data-ng-mousemove="data.OnMouseMove()" 这可以正常工作,但如果用户连续移动鼠标,则会中断动画。所以我想禁用mousemove事件20秒,但不知道如何禁用。类似这样的伪代码: $scope.data.OnMouseMove = function () { document.getElementsByTagName("body")[0].data-ng-mousemo
<body data-ng-mousemove="data.OnMouseMove()"
这可以正常工作,但如果用户连续移动鼠标,则会中断动画。所以我想禁用mousemove事件20秒,但不知道如何禁用。类似这样的伪代码:
$scope.data.OnMouseMove = function ()
{
document.getElementsByTagName("body")[0].data-ng-mousemove = "";
AccountService.RefreshToken();
window.setTimeout(function ()
{
document.getElementsByTagName("body")[0].data-ng-mousemove = "data.OnMouseMove()";
}, 20000);
};
如果最近刷新了令牌,您的服务中可能会有一个标志。如果是这种情况,那么只需在鼠标悬停事件中返回void。如果最近刷新了令牌,您的服务中可能会有一个标志。如果是这种情况,那么只需在鼠标悬停事件中返回void。我找不到任何动态更改ng mousemove事件的方法。AngularJS不是这样设计的 唯一的其他AngularJS选项可能是编写自定义属性指令,并动态使用$compile和$destroy对其进行更改。但我知道的还不够多 最简单、最快的解决方案就是简单地使用非角度Javascript事件,您可以轻松地绑定和解除绑定,并在该事件中调用角度服务 像这样:
"use strict";
var HandleMouseMoveOnBody = function()
{
var htmlScope = angular.element(document.getElementById('htmlId')).scope(); //get access to angular from the outside
htmlScope.data.OnMouseMove(); //refresh the token in Angular service
$('body').off('mousemove'); //stop watching mouse movement as it slows the entire page
//watch mouse movement again in a minute
window.setTimeout(function()
{
$('body').on('mousemove', HandleMouseMoveOnBody);
}, 55000);
};
//start watching
$(document).ready(function()
{
$('body').on('mousemove', HandleMouseMoveOnBody);
});
我找不到任何动态更改ng mousemove事件的方法。AngularJS不是这样设计的 唯一的其他AngularJS选项可能是编写自定义属性指令,并动态使用$compile和$destroy对其进行更改。但我知道的还不够多 最简单、最快的解决方案就是简单地使用非角度Javascript事件,您可以轻松地绑定和解除绑定,并在该事件中调用角度服务 像这样:
"use strict";
var HandleMouseMoveOnBody = function()
{
var htmlScope = angular.element(document.getElementById('htmlId')).scope(); //get access to angular from the outside
htmlScope.data.OnMouseMove(); //refresh the token in Angular service
$('body').off('mousemove'); //stop watching mouse movement as it slows the entire page
//watch mouse movement again in a minute
window.setTimeout(function()
{
$('body').on('mousemove', HandleMouseMoveOnBody);
}, 55000);
};
//start watching
$(document).ready(function()
{
$('body').on('mousemove', HandleMouseMoveOnBody);
});
您是否考虑过放置
AccountService.refreshtToken()
在“setTimeout”回调正文中?或者,您可能对以下内容感兴趣:也许您想移动鼠标处理程序?谢谢大家,是的,我的刷新令牌方法已被限制,几乎需要0毫秒。但是只要在身体上有mousemove事件,就会导致这个事件不断触发。实际上,我需要完全解除绑定,然后再重新绑定事件,而不仅仅是在其中做得更少。现在查看Sphaso的链接…您是否考虑过放置AccountService.refreshtToken()
在“setTimeout”回调正文中?或者,您可能对以下内容感兴趣:也许您想移动鼠标处理程序?谢谢大家,是的,我的刷新令牌方法已被限制,几乎需要0毫秒。但是只要在身体上有mousemove事件,就会导致这个事件不断触发。实际上,我需要完全解除绑定,然后再重新绑定事件,而不仅仅是在其中做得更少。正在查看Sphaso的链接。。。