Saya ingin menangkap acara tekan tombol enter pada kotak teks di bawah ini. Untuk membuatnya lebih jelas, saya menggunakan a ng-repeat
untuk mengisi tbody. Ini HTML-nya:
<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>
Ini adalah modul saya:
angular.module('components', ['ngResource']);
Saya menggunakan sumber daya untuk mengisi tabel dan kode pengontrol saya adalah:
function Ajaxy($scope, $resource) {
//controller which has resource to populate the table
}
angularjs
angularjs-directive
angular-ui
Venkata Tata
sumber
sumber
Jawaban:
Anda perlu menambahkan
directive
, seperti ini:Javascript :
HTML :
sumber
keydown
dankeypress
peristiwa dari elemen yang dikaitkan dengannya. Ketika acara diterima, ekspresi yang disediakan dievaluasi di dalam$apply
blok.var key = typeof event.which === "undefined" ? event.keyCode : event.which;
selama event.which tidak digunakan oleh setiap browser. Lihat komentar di sini: stackoverflow.com/a/4471635/2547632keyup
dalam tes mengikatAlternatifnya adalah menggunakan arahan standar
ng-keypress="myFunct($event)"
Kemudian di controller Anda, Anda dapat memiliki:
sumber
ng-keypress
tampaknya tidak menjadi bagian dari sudut 1.0.x,ui-keypress
(dengan semantik panggilan yang sedikit berbeda) tersedia: angular-ui.github.io/ui-utilsPendekatan saya yang paling sederhana menggunakan arahan built-in hanya sudut:
ng-keypress
,ng-keydown
ataung-keyup
.Biasanya, kami ingin menambahkan dukungan keyboard untuk sesuatu yang sudah ditangani oleh ng-klik.
contohnya:
Sekarang, mari kita tambahkan dukungan keyboard.
pemicu dengan memasukkan kunci:
dengan tombol spasi:
dengan spasi atau masukkan kunci:
jika Anda menggunakan browser modern
Lebih lanjut tentang keyCode:
keyCode sudah usang tetapi didukung API, Anda bisa menggunakan $ evevt.key sebagai gantinya di browser yang didukung.
Lihat lebih banyak di https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
sumber
Alternatif sederhana lain:
Dan alternatif ng-ui:
sumber
Inilah yang saya ketahui ketika saya sedang membangun sebuah aplikasi dengan persyaratan yang sama, tidak perlu menulis arahan dan relatif mudah untuk mengetahui apa yang dilakukannya:
sumber
Anda dapat menggunakan ng-keydown = "myFunction ($ event)" sebagai atribut.
sumber
html
controller.js
sumber
Anda juga dapat menerapkannya pada pengontrol pada elemen induk. Contoh ini dapat digunakan untuk menyorot baris dalam sebuah tabel dengan menekan tombol panah atas / bawah.
sumber
Mencoba
tidak melakukan apa pun untuk saya.
Strangley sampel di https://docs.angularjs.org/api/ng/directive/ngKeypress , yang berfungsi ng-keypress = "count = count +1", berfungsi.
Saya menemukan solusi alternatif, yang telah menekan Enter untuk memanggil tombol ng-klik.
sumber
ng-keypress="console.log('foo')"
tidak bekerja untuk saya juga, tetapi jika Anda melakukannyang-keypress="fooMethod()"
dan di controller Anda$scope.fooMethod = function() { console.log('fooMethod called'); }
tidak berfungsi.sumber
Ini adalah ekstensi dari jawaban dari EpokK.
Saya memiliki masalah yang sama karena harus memanggil fungsi lingkup ketika enter didorong pada bidang input. Namun saya juga ingin meneruskan nilai bidang input ke fungsi yang ditentukan. Ini solusi saya:
});
Penggunaan dalam HTML adalah sebagai berikut:
Kudos to EpokK untuk jawabannya.
sumber
<input type="text" name="itemname" ng-model="item.itemname" lta-enter="add(item.itemname)" placeholder="Add item"/>
Bagaimana dengan ini?:
Sekarang ketika Anda menekan tombol enter setelah menulis sesuatu di input Anda, formulir tahu bagaimana menanganinya.
sumber
chat.sendMessage()
didefinisikanBeberapa contoh kode yang saya lakukan untuk proyek saya. Pada dasarnya Anda menambahkan tag ke entitas Anda. Bayangkan Anda memiliki input teks, pada memasukkan nama Tag Anda mendapatkan menu drop-down dengan tag yang telah dimuat untuk dipilih, Anda menavigasi dengan panah dan pilih dengan Enter:
HTML + AngularJS v1.2.0-rc.3
Controller.js
CSS + Bootstrap v2.3.2
sumber
Saya agak terlambat .. tetapi saya menemukan solusi yang lebih sederhana menggunakan
auto-focus
.. Ini bisa berguna untuk tombol atau lainnya ketika munculdialog
:<button auto-focus ng-click="func()">ok</button>
Itu akan baik-baik saja jika Anda ingin menekan tombol
on
Spasi atau Masukkan klik.sumber
inilah arahan saya:
pemakaian:
sumber
Anda dapat menggunakan ng-keydown, ng-keyup, ng-tekan seperti ini.
sumber
Saya pikir menggunakan document.bind sedikit lebih elegan
Untuk mendapatkan dokumen ke konstruktor pengontrol:
sumber
sumber
Yang perlu Anda lakukan untuk mendapatkan acara adalah sebagai berikut:
Arahan dapat melakukannya, tetapi bukan itu yang Anda lakukan.
sumber