ユーザーが入力中に入力フィールドのすべての文字を大文字にする必要があります。グローバルformly角度使用して、同じ行うにはどのような方法があるAngular formlyを使用して入力フィールドをグローバルに自動的に大文字にする方法
formlyConfigProvider.setWrapper
を使用して、それは可能ですか?
ユーザーが入力中に入力フィールドのすべての文字を大文字にする必要があります。グローバルformly角度使用して、同じ行うにはどのような方法があるAngular formlyを使用して入力フィールドをグローバルに自動的に大文字にする方法
formlyConfigProvider.setWrapper
を使用して、それは可能ですか?
角度形式では、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();
}
}
},
...
だけでなく、単に入力フィールドにディレクティブを追加し、私はこれはくだらないものだった知っている私は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
}
};
});
入力データをautocapitaliseする良いディレクティブを持っていますしかし仕事は良いです