Javascript AngularJS-转换输入值并使视图反映所做的更改
当用户在我的输入中输入文本时,我希望 删除所有空白 将输入的文本设置为小写 更改视图输入值以反映上述更改 我写了一个处理小写字母的指令,看起来不错,但效果很差Javascript AngularJS-转换输入值并使视图反映所做的更改,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,当用户在我的输入中输入文本时,我希望 删除所有空白 将输入的文本设置为小写 更改视图输入值以反映上述更改 我写了一个处理小写字母的指令,看起来不错,但效果很差 angular.module("app").directive "toLowercase", function() { return { require: "ngModel", link: function(scope, element, attrs, ngModel) {
angular.module("app").directive "toLowercase", function()
{
return {
require: "ngModel",
link: function(scope, element, attrs, ngModel)
{
ngModel.$parsers.unshift(function(viewValue)
{
var val = (viewValue || "").toLowerCase();
element.val(val);
return val;
});
ngModel.$formatters.unshift(function()
{
return ngModel.$modelValue.toLowerCase();
});
}
}
}
使用演示:
它似乎有空白的问题,而且光标在输入字段中的工作方式很奇怪,因为我替换了我计算的值
有人做过这样的事吗 您需要绑定onblur上的reformat函数,因为ngModel将在每次按下键时触发
请参见空白有什么问题?我试过了-效果很好。输入大写文本后立即按空格键似乎根本不起作用,但如果您没有遇到这种情况,则可能是局部问题。如果您只制作一个$scope函数,在ng keyup上触发,并在其键不是空格键时返回事件,并且在需要?