MrU*_*own 3 javascript angularjs angularjs-directive
对AngularJS来说很新...我有一个输入字段,我希望第一个字母大写.我添加了以下指令:
.directive('capitalizeFirst', function () {
return {
require: 'ngModel',
link: function ($scope, $element, $attrs, $modelCtrl) {
var capitalize = function (inputValue) {
var capitalized = angular.uppercase(inputValue.substring(0, 1)) + inputValue.substring(1);
if (capitalized !== inputValue) {
$modelCtrl.$setViewValue(capitalized);
$modelCtrl.$render();
}
return capitalized;
};
$modelCtrl.$parsers.push(capitalize);
capitalize($scope[$attrs.ngModel]); // capitalize initial value
}
};
})
Run Code Online (Sandbox Code Playgroud)
有用!但它在我的控制台中触发错误:
TypeError:无法读取undefined的属性'substring'
任何人都可以让我知道出了什么问题吗?提前致谢!
小智 5
似乎你没有检查inputValue是否为null.
.directive('capitalizeFirst', function () {
return {
require: 'ngModel',
link: function ($scope, $element, $attrs, $modelCtrl) {
var capitalize = function (inputValue) {
if (!! inputValue) {
var capitalized = angular.uppercase(inputValue.substring(0, 1)) + inputValue.substring(1);
if (capitalized !== inputValue) {
$modelCtrl.$setViewValue(capitalized);
$modelCtrl.$render();
}
return capitalized;
}
return inputValue;
};
$modelCtrl.$parsers.push(capitalize);
capitalize($scope[$attrs.ngModel]); // capitalize initial value
}
};})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8615 次 |
| 最近记录: |