該函數應該大寫輸入中每個單詞的首字母。但角是扔我「RangeError:超過最大調用堆棧大小」。而且,只有becouse上線9angular.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 2014-09-04 14:34:49