Angularjs指令-延迟调用keydown侦听器
我有一个指令Angularjs指令-延迟调用keydown侦听器,angularjs,angular-directive,Angularjs,Angular Directive,我有一个指令makecaps应用于输入元素。当用户输入时,它会将输入框中的所有字符转换为大写 现在,该指令将其事件侦听器连接到keydownevent link : function(scope, element, attrs){ element.bind('keydown', function(event){ //$timeout(function(){ element[0].value = element[0].value.toUpperCas
makecaps
应用于输入元素。当用户输入时,它会将输入框中的所有字符转换为大写
现在,该指令将其事件侦听器连接到keydown
event
link : function(scope, element, attrs){
element.bind('keydown', function(event){
//$timeout(function(){
element[0].value = element[0].value.toUpperCase();
//});
})
}
大写字母适用于所有字符,但最后一个字符被省略。如果用户键入elle
,它将呈现elle
。我可以通过将代码包装在$timeout
块中来修复它,但我很好奇,当我设置元素[0]。value
Plunker代码为。这是因为在将新字符添加到输入值之前会触发
按键事件。使用keyup
element.bind('keyup', function(event){
element[0].value = element[0].value.toUpperCase();
})
这是因为keydown
事件是在将新字符添加到输入值之前触发的。使用keyup
element.bind('keyup', function(event){
element[0].value = element[0].value.toUpperCase();
})