我已经有了以下代码:
<body ng-keydown="key($event);" ng-controller="appController">
function appController($scope) {
$scope.key = function($event){
console.log($event.keyCode);
if ($event.keyCode == 38)
alert("up arrow");
else if ($event.keyCode == 39)
alert("right arrow");
else if ($event.keyCode == 40)
alert("down arrow");
else if ($event.keyCode == 37)
alert("left arrow");
}
}
但是我只有一个控制器,如果按下箭头键,当它存在于体内时,需要调用一个函数。
我该如何将它们中的事件从我的appController向下连接到较低级别的控制器(在这种情况下称为questionController)?
如果您要在主父控制器上维护事件,则$ broadcast事件将发送给孩子的内部$scope
。
$scope.key = function($event) {
$scope.$broadcast('key', $event)
}
$scope.$on = function(event, keyEvent) {
console.log($event.keyCode);
if (keyEvent.keyCode == 38)
alert("up arrow");
else if (keyEventt.keyCode == 39)
alert("right arrow");
else if (keyEvent.keyCode == 40)
alert("down arrow");
else if (keyEvent.keyCode == 37)
alert("left arrow");
}
无需$broadcast
在内部使用$rootScope
,因为所有子作用域都会侦听此事件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句