AngularJS:错误:事件未定义(仅限Firefox)
即使我定义了这个事件,并且它在Chrome中工作,但在Firefox中却不工作AngularJS:错误:事件未定义(仅限Firefox),angularjs,events,Angularjs,Events,即使我定义了这个事件,并且它在Chrome中工作,但在Firefox中却不工作 app.controller('lightbox_close_controller', ['$scope', '$rootScope', function($scope, $rootScope) { $scope.close_rating_lightbox = function(event) { if (!$(".lightbox").hasClass("mobile_ra
app.controller('lightbox_close_controller', ['$scope', '$rootScope', function($scope, $rootScope) {
$scope.close_rating_lightbox = function(event) {
if (!$(".lightbox").hasClass("mobile_ratebox")) {
event.stopPropagation();
$("#image_in_lightbox_inside").empty();
}
}
}
]);
从ui传递
$event
像
点击我
我发现,如果忘记在事件处理程序中添加事件参数,也会出现此错误,即
onClicked(event){
}
与Angular 2中的问题相同,firefox在事件声明方面更加严格
//in chrom works fine
//in firefox throws event is undefined
@HostListener('click') onClick() {
console.info(event);
}
// to fix it you have to add
@HostListener('click', ['$event']) onClick(event) {
console.log(event)
}
它应该是$event在这里,并通过在您的html以及显示相关的HTMLTank相同的,它的工作。还有一个问题。即使我传递$event,在函数中我也可以调用event。为什么它在没有$符号的情况下工作?事件属性被angular$event覆盖,因此您的代码不能像window to be$window、setTimeout be$timeoutfunction仅传递值或引用一样工作。如果函数有参数,则值或引用将根据传递数据的位置传递到该参数中。在过去的一个小时里,我的头一直撞在墙上。
//in chrom works fine
//in firefox throws event is undefined
@HostListener('click') onClick() {
console.info(event);
}
// to fix it you have to add
@HostListener('click', ['$event']) onClick(event) {
console.log(event)
}