Эта функция должна использовать первую букву для каждого слова ввода. Но угловой бросает меня «RangeError: максимальный размер стека вызовов». И только becouse этого '' пространства на линии 9.angular.js капитализировать каждое слово
myApp.directive('capitalizeFirst', function(uppercaseFilter, $parse) {
return {
require: 'ngModel',
link: function(scope, element, attrs, modelCtrl) {
var capitalize = function(inputValue) {
var capitalized = inputValue.split(' ').reduce(function(prevValue, word){
return prevValue + word.substring(0, 1).toUpperCase() + word.substring(1)+' ';
}, '');
if(capitalized !== inputValue) {
modelCtrl.$setViewValue(capitalized);
modelCtrl.$render();
}
return capitalized;
}
var model = $parse(attrs.ngModel);
modelCtrl.$parsers.push(capitalize);
capitalize(model(scope));
}
};
});
здесь скрипка
http://jsfiddle.net/YyYnM/205/
Может кто-нибудь объяснить мне это? Я пытаюсь понять это в течение часа.
Кажется, что 'capitalized' никогда не будет равен' inputValue', потому что вы добавления пробела ('') до значения в функции уменьшения. – Axarydax