AngularJS - 转换输入值并使视图反映所做的更改

时间:2014-10-22 09:05:47

标签: javascript angularjs angularjs-directive

当用户输入我想要的输入中的文字时

  1. 删除所有空格
  2. 输入文字小写
  3. 更改了视图输入值以反映上述更改
  4. 我写了一个小指令来处理小写,它看起来不错,但就像废话一样

    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();
                });
            }
        }
    }
    

    使用演示:http://jsfiddle.net/tr2jhb8t/ 它似乎有空白问题,并且光标在输入字段中工作很时髦(因为我替换了我认为的值)。

    有人做过这样的事吗?

1 个答案:

答案 0 :(得分:0)

你需要绑定重新格式化函数onblur因为ngModel将在每个keydown上触发

请参阅https://code.angularjs.org/1.3.0/docs/api/ng/directive/ngBlur