2017-04-10 3 views
0

I can move up and down with the keyboard keys but i cannot get the enter event correctWinkel js Ereignis geben Sie eine Funktion auf dem Element zu nennen tr

**Controller** 

$scope.myFunction = function() 
{ 
    alert('sadsad'); 
    alert('hi'); 
} 

**Also i added directive like this** 

.directive('ngEnter', function() 
    { 
     restrict:'use strict'; 
     return { 
      link: function (scope, elements, attrs) { 
       elements.bind('keydown keypress', function (event) { 
        if (event.which === 13) { 
         scope.$apply(function() { 
          scope.$eval(attrs.ngEnter); 
         }); 
         event.preventDefault(); 
        } 
       }); 
      } 
     }; 
    }); 

    **Below is the view code on which i m calling directive and function** 

<tr class="find"ng-repeat="busServices in " ng-click="setSelected(busServices.bus_travel_id,this.busServices,$event)" ng-class="{selectedsd:busServices.bus_travel_id === idSelected}" ng-mouseover="ShowHideBoarding($event,this.busServices,true)" ng-mouseleave="ShowHideBoarding($event,false)" ng-init="($first) ? setSelected(busServices.bus_travel_id,this.busServices) : ''" ng-enter="myFunction()"></tr> 

ng eingeben tut überhaupt aufgerufen. was kann ich tun, damit ng eingeben kann funktionieren.

+1

Grundsätzlich , ng-enter funktioniert, wenn Sie das in einem Eingabefeld verwenden. Aber Sie verwenden in . Andernfalls versuchen Sie, das Element zu fokussieren und drücken Sie die Eingabetaste (möglicherweise oder möglicherweise wird es funktionieren) – Srigar

+0

Überprüfen Sie auch die Option "restricte" Ihrer Richtlinie. Es kann nicht 'use strict' sein, es sollte' 'A'' sein zum Beispiel – devnull69

+0

Mögliches Duplikat von [Wie benutzt man ein Tastendruckereignis in AngularJS?] (Http://stackoverflow.com/questions/17470790/how-to- use-a-keypress-event-in-angularjs) –

Antwort

0

Probieren Sie etwas wie dieses

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

       event.preventDefault(); 
      } 
     }); 
    }; 
}); 

Die Option beschränken kann entfallen.

EDIT: Sie haben ein Attribut zu Ihrem <tr> hinzuzufügen, so dass sie fokussiert werden kann und Schlüssel * Events zu erhalten:

<tr tabindex="0" ....> 

0 Ersetzen Sie mit anderen Nummern für mehrere Ihrer fokussierbaren <tr>

+0

funktioniert nicht, ich möchte es auf tr –

+0

verwenden Siehe letzte Änderung ... zumindest können Sie versuchen. Normalerweise 'tr' Elemente sind nicht dazu bestimmt, Schlüssel * Ereignisse zu empfangen – devnull69

+0

nein funktioniert nicht –

Verwandte Themen