2016-07-11 7 views
4

Ich bin neu in AngularJS und erkunden Event-Handler. Ich gehe über eine bestehende Codebasis und hatte keine Ahnung, warum $event übergeben wird. Dies ist, was die html wie

<p><a ng-click="packBtnClick($event)" href="#" title="">[[btnAction]]</a></p> 

Und in der Steuerung sieht,

$scope.packBtnClick = function($e){ 
    $e.preventDefault(); 
    if($scope.packAvailable){ 
    addPackIntoCart(); 
    } 
    else{ 
    //some other code. 
}; 

Der einzige Zweck hier in einem Ereignis vorbei zu preventDefault Verhalten.
Meine Frage ist - ist es wirklich notwendig, in die $event?

Antwort

3

Es ist notwendig, wenn Sie preventDefault aufrufen möchten und andernfalls nicht. Wenn Sie nichts von $event offengelegt aufrufen müssen, können Sie es sicher entfernen, da das Eintreten des Ereignisses nicht verhindert wird.

Sie finden die $ event Dokumentation here. Es ist einfach ein Wrapper für die jQuery event object wenn jQuery vorhanden ist, oder etwas ähnliches bei der Verwendung von jqLite. Sie können das Ereignisobjekt nach einer vollständigen Liste potenziell exponierter Eigenschaften und Funktionen durchsuchen. Es ist nicht garantiert, dass jqLite alle die gleichen Eigenschaften und Funktionen aufweist, aber es sollte in fast allen Szenarien sehr nah sein.

+0

Vielen Dank. Wie würde ich wissen, was "$ event" aussetzt? –

+0

@ShrutiKapoor du bist willkommen. Ich habe meine Antwort mit der $ event Dokumentation aktualisiert. –