当用户输入数据时,下面的代码可以正常工作。但我的问题是当数据来自 database(auto filled)
我的指令无效(字母大写)。有没有一个不起作用的原因?。
但是当使用 class="text-uppercase"
它起作用了。
html
<input ng-model="profile.Name" type="text" placeholder="" maxlength="40" capitalize />
js
app.directive('capitalize', function ($parse) {
return {
require: 'ngModel',
link: function (scope, element, attrs, modelCtrl) {
var capitalize = function (inputValue) {
if (inputValue === undefined) { inputValue = ''; }
var capitalized = inputValue.toUpperCase();
//for (var i = 0; i < capitalized.length; i++) {
// capitalized[i] = capitalized[i].charAt(0).toUpperCase() + capitalized[i].substring(1);
//}
if (capitalized !== inputValue) {
modelCtrl.$setViewValue(capitalized);
modelCtrl.$render();
}
return capitalized;
}
modelCtrl.$parsers.push(capitalize);
capitalize($parse(attrs.ngModel)(scope)); // capitalize initial value
}
};
});
1条答案
按热度按时间gcuhipw91#
您可以在下面查看,了解有关“ngmodel”配置设置的更多信息。
“ngmodel”的含义是什么?