Quiero ver el evento de presionar la tecla enter en el cuadro de texto a continuación. Para que quede más claro, estoy usando a ng-repeatpara poblar el cuerpo. Aquí está el HTML:
<td><input type="number" id="closeqty{{$index}}" class="pagination-right closefield"
data-ng-model="closeqtymodel" data-ng-change="change($index)" required placeholder="{{item.closeMeasure}}" /></td>
Este es mi módulo:
angular.module('components', ['ngResource']);
Estoy usando un recurso para llenar la tabla y mi código de controlador es:
function Ajaxy($scope, $resource) {
//controller which has resource to populate the table
}
angularjs
angularjs-directive
angular-ui
Venkata Tata
fuente
fuente

Respuestas:
Necesita agregar un
directive, como este:Javascript :
HTML :
fuente
keydownykeypressdel elemento al que se le atribuye. Cuando se recibe el evento, la expresión proporcionada se evalúa dentro de un$applybloque.var key = typeof event.which === "undefined" ? event.keyCode : event.which;siempre y cuando event.which no sea utilizado por todos los navegadores. Ver comentarios aquí: stackoverflow.com/a/4471635/2547632keyupen la prueba de enlaceUna alternativa es usar la directiva estándar
ng-keypress="myFunct($event)"Luego, en su controlador puede tener:
fuente
ng-keypressno parece ser parte de 1.0.x angular,ui-keypress(con semántica ligeramente diferente de llamadas) está disponible sin embargo: angular-ui.github.io/ui-utilsMi enfoque más simple usando solo la directiva de construcción angular:
ng-keypress,ng-keydownOng-keyup.Por lo general, queremos agregar soporte de teclado para algo que ya se maneja con ng-click.
por ejemplo:
Ahora, agreguemos soporte de teclado.
disparar con la tecla enter:
por tecla de espacio:
por espacio o tecla enter:
si estás en un navegador moderno
Más información sobre keyCode:
keyCode está en desuso pero tiene una API bien admitida, en su lugar, puede usar $ evevt.key en el navegador compatible.
Ver más en https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
fuente
Otra alternativa simple:
Y la alternativa ng-ui:
fuente
Esto es lo que descubrí cuando estaba creando una aplicación con un requisito similar, no requiere escribir una directiva y es relativamente simple decir lo que hace:
fuente
Puede usar ng-keydown = "myFunction ($ event)" como atributo.
fuente
html
controller.js
fuente
También puede aplicarlo a un controlador en un elemento padre. Este ejemplo se puede utilizar para resaltar una fila en una tabla presionando las teclas de flecha arriba / abajo.
fuente
Molesto
no hizo nada por mi
Estrangular la muestra en https://docs.angularjs.org/api/ng/directive/ngKeypress , que hace ng-keypress = "count = count + 1", funciona.
Encontré una solución alternativa, que al presionar Enter invoca el botón ng-click del botón.
fuente
ng-keypress="console.log('foo')"tampoco funcionó para mí, pero si lo haceng-keypress="fooMethod()"y en su controlador$scope.fooMethod = function() { console.log('fooMethod called'); }funciona.fuente
Esta es una extensión de la respuesta de EpokK.
Tuve el mismo problema de tener que llamar a una función de alcance cuando enter se presiona en un campo de entrada. Sin embargo, también quería pasar el valor del campo de entrada a la función especificada. Esta es mi solución:
});
El uso en HTML es el siguiente:
Felicitaciones a EpokK por su respuesta.
fuente
<input type="text" name="itemname" ng-model="item.itemname" lta-enter="add(item.itemname)" placeholder="Add item"/>¿Qué hay de esto ?:
Ahora, cuando presiona la tecla Intro después de escribir algo en su entrada, el formulario sabe cómo manejarlo.
fuente
chat.sendMessage()defineAlgún ejemplo de código que hice para mi proyecto. Básicamente agrega etiquetas a su entidad. Imagina que has ingresado texto, al ingresar el nombre de la etiqueta obtienes un menú desplegable con etiquetas precargadas para elegir, navegas con flechas y seleccionas con Enter:
HTML + AngularJS v1.2.0-rc.3
Controller.js
CSS + Bootstrap v2.3.2
fuente
Llego un poco tarde ... pero encontré una solución más simple usando
auto-focus... Esto podría ser útil para botones u otros cuando aparece undialog:<button auto-focus ng-click="func()">ok</button>Eso debería estar bien si desea presionar el botón
onEspacio o Entrar clics.fuente
Aquí está mi directiva:
uso:
fuente
puede usar ng-keydown, ng-keyup, ng-press como este.
fuente
Creo que usar document.bind es un poco más elegante
Para llevar el documento al constructor del controlador:
fuente
fuente
Todo lo que necesita hacer para obtener el evento es lo siguiente:
Una directiva puede hacerlo, pero no es así como lo hace.
fuente