如何使用Angular形式全局自动化输入文件

时间:2016-03-21 12:22:07

标签: angularjs angular-formly

我想在用户输入时自动将输入字段中的所有字母大写。是否可以使用

  

formlyConfigProvider.setWrapper

有没有办法在全球范围内使用角度形式做同样的事情?

2 个答案:

答案 0 :(得分:0)

使用Angular-formly,可以通过向字段添加watcher.listener来实现。

ctrl.fields = [{
    key: 'lastname',
    type: 'input',
    templateOptions: {
        label: 'Last name',
        placeholder: 'Ex: PETERSON'
    },
    watcher: {
        listener: function(field, newValue, oldValue, formScope, stopWatching) {
            console.log('watch lastname', arguments);
            formScope.model.lastname = formScope.model.lastname.toUpperCase();
        }
    }
},
...

答案 1 :(得分:0)

我不擅长formlyConfigProvider.setWrapper,但我有一个很好的指令来自动输入数据

angular
  .module('myApp', [])
  .directive('capitalize', function() {
    return {
      require: 'ngModel',
      link: function(scope, element, attrs, modelCtrl) {
        var capitalize = function(inputValue) {
          if (inputValue == undefined) inputValue = '';
          var capitalized = inputValue.toUpperCase();
          if (capitalized !== inputValue) {
            modelCtrl.$setViewValue(capitalized);
            modelCtrl.$render();
          }
          return capitalized;
        }
        modelCtrl.$parsers.push(capitalize);
        capitalize(scope[attrs.ngModel]); // capitalize initial value
      }
    };
  });

只需将指令添加到输入字段,我知道这很糟糕但工作很好