如何在AngularJS表单元素内的输入字段中自动大写第一个字符?
我已经看到了jQuery解决方案,但相信在AngularJS中必须通过使用指令来完成此操作。
最佳答案
是的,您需要定义一个指令并定义自己的解析器函数:
myApp.directive('capitalizeFirst', function($parse) {
return {
require: 'ngModel',
link: function(scope, element, attrs, modelCtrl) {
var capitalize = function(inputValue) {
if (inputValue === undefined) { inputValue = ''; }
var capitalized = inputValue.charAt(0).toUpperCase() +
inputValue.substring(1);
if(capitalized !== inputValue) {
modelCtrl.$setViewValue(capitalized);
modelCtrl.$render();
}
return capitalized;
}
modelCtrl.$parsers.push(capitalize);
capitalize($parse(attrs.ngModel)(scope)); // capitalize initial value
}
};
});
HTML:
<input type="text" ng-model="obj.name" capitalize-first>
Fiddle
关于angularjs - 如何在AngularJS的输入字段中自动大写第一个字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15242592/