我正在观察键盘事件,特别是左,右和esc。角度击键观察器没有正确更新范围
每一个都绑定到一个函数,该函数在页面的控制器中执行一些范围函数。
这些函数在按下按键时会被调用,但是应该在这些函数中更新的范围变量似乎没有任何作用。
是否有范围问题?这是否是我将这些输入事件绑定到body
的问题?
angular.element(document.body).bind('keydown keypress', function (event)
{
if(event.which === 27) // 27 = esc key
{
$scope.toggleSize();
// $scope.$apply(function() {
// $scope.fullscreen = !$scope.fullscreen;
// });
console.log('scope', $scope.fullscreen);
event.preventDefault();
} else if(event.which === 37) {
console.log('next');
$scope.goToNextSection('currentSection', $scope.slides);
} else if(event.which === 39) {
console.log('prev');
$scope.goToPreviousSection('currentSection', $scope.slides);
}
});
你有没有试过调用'$ apply()'? –