为什么你需要在firefox中为onClick传递事件,而不是在使用Angular传递chrome?

时间:2016-04-06 20:49:54

标签: javascript angularjs google-chrome firefox

在firefox中,您必须传递以下内容才能使用

// In directive link
function linkFunc(scope, element, attr){
        element.on('click', function(event){

            event.stopPropagation();
            scope.myVar.value = false;
            scope.$digest();
        });
]

在Chrome中,您可以执行以下操作

// In directive link
function linkFunc(scope, element, attr){
        // Won't work for firefox
        //    will run into ReferenceError: event is not defined
        element.on('click', function(){

            event.stopPropagation();
            scope.myVar.value = false;
            scope.$digest();
        });
}

这种行为差异背后的原因是什么?

2 个答案:

答案 0 :(得分:2)

这与angularjs或任何其他框架无关。

event是IE中的全局变量& Chrome(window对象的属性)。在Firefox中并非如此,因此您需要将其明确地作为参数发送

查看this answerhere

答案 1 :(得分:0)

没有" onClick"有角度但是" ng-click",(也许是Jquery我不知道)

官方文件:https://docs.angularjs.org/api/ng/directive/ngClick

<ANY
  ng-click="functionA()">
  ...
</ANY>