Angularjs 按键不';无法在输入文本中正确刷新ng模型,但keyup会
我需要在指令中检索文本输入的值,使用ng模型将值发送到数据库。 如果我在指令中使用keydown事件,并在输入中写入示例1234,则指令中显示的结果为123,如果我写入abc,则结果为ab。 如果我使用keyup,这个问题就不存在(通过firefox和chrome测试)。 为什么会发生这种情况 我的代码:Angularjs 按键不';无法在输入文本中正确刷新ng模型,但keyup会,angularjs,keydown,Angularjs,Keydown,我需要在指令中检索文本输入的值,使用ng模型将值发送到数据库。 如果我在指令中使用keydown事件,并在输入中写入示例1234,则指令中显示的结果为123,如果我写入abc,则结果为ab。 如果我使用keyup,这个问题就不存在(通过firefox和chrome测试)。 为什么会发生这种情况 我的代码: .directive('updateDbb', ["$http", function ($http) { return { restrict: 'A', require: 'ngMode
.directive('updateDbb', ["$http", function ($http) {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
// Listen for change events to enable binding
var ngModelValue, inputName, testValid, dbbFieldName, idDbb;
element.bind('keydown', function () {
ngModelValue = ngModel.$viewValue;
console.log(ngModelValue); // Show with delay, not the case with "keyup"!!!
…
keydown
在用户按下某个键时触发,并且在将字符插入输入之前触发这就是它无法更新的原因
按键
在输入中插入实际字符时触发。我认为这是您想要使用的事件(如果用户保持向下键,则每个插入的字符将触发一次事件)
keyup
在将字符插入输入后,当用户释放一个键时激发。(如果用户按下键,事件将只触发一次)这正是您所期望的keydown
是keypress
事件的第一部分keydown
是在字符键入完成后,然后绑定值。