2016-07-07 20 views
1

Ich versuche, in Angular einen guten Weg zu finden, um eine Funktion auszuführen, indem Sie enter von einer Eingabe in einem Formular aus drücken. Ich fand dies auf einem Stackoverflow Beitrag:Angular, wie drücken Sie die Eingabetaste, um eine Funktion auszuführen?

$(".input1").keyup(function (e) { 
     if (e.keyCode == 13) { 
      // Do something 
     } 
    }); 

aber ich frage mich, ob es einen besseren Weg, es zu tun ist.

+1

optional http://stackoverflow.com/questions/17470790/how-to-use-a-keypress-event-in-angularjs – chf

Antwort

4

Ich benutze eine Richtlinie wie folgt aus:

.directive('ngEnter', function() { 
    return function (scope, element, attrs) { 
     element.bind("keydown keypress", function (event) { 
      if (event.which === 13) { 
       scope.$apply(function() { 
        scope.$eval(attrs.ngEnter); 
       }); 
       event.preventDefault(); 
      } 
     }); 
    }; 
}); 

Dann wird in der HTML Sie können dies tun:

<input type="text" ng-model"whatever" ng-enter"submitAFunction()">   
2

Warum ng einreichen nicht verwenden?

<form ng-submit="myfunction()"> 
    <input ng-model="myvalue" type="text"> 
    <input type="submit" value="submit"> 
<form> 

Es wird ausgeführt, welche Funktion auf ng-submit ist, wenn Sie entweder auf die Schaltfläche klicken, oder drücken Sie die Eingabetaste.

https://docs.angularjs.org/api/ng/directive/ngSubmit

können Sie im Beispiel sehen, dass Sie nur die Eingabetaste drücken können.

die auch gerne Eingang kann

Verwandte Themen