gpt4 book ai didi

javascript - Angular : Cannot read property 'substring' of undefined

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:47:06 26 4
gpt4 key购买 nike

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

有效!但它在我的控制台中引发了一个错误:

类型错误:无法读取未定义的属性“子字符串”

谁能告诉我哪里出了问题?提前致谢!

最佳答案

你似乎没有检查 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
}
};})

关于javascript - Angular : Cannot read property 'substring' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24409298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com