剛更新到Angular 1.3,我的「大寫」指令不像以前那樣工作。
這裏是我的指令:
.directive('capitalize', function(){
return {
restrict :'A',
require:'ngModel',
link : function(scope, elt, attrs, modelCtrl){
modelCtrl.$parsers.push(function(value){
var up = value.toUpperCase();
modelCtrl.$setViewValue(up);
modelCtrl.$render();
return up;
})
}
}
})
當我使用它與NG-最大長度指令驗證輸入字段,該行爲是很奇怪......
<input capitalize ng-model="c.myField1" ng-maxlength="3" name="myField1" />
如果輸入3個以上的字符,輸入字段將被清除。爲什麼?
我不明白爲什麼,你想幫我解決這個問題嗎?
很明顯,在我從1.3rc1更新之前就沒問題。
這裏是小提琴例如:http://fiddle.jshell.net/dctf1p8e/4/
我建議只刪除'ng-maxlength'並將這個邏輯移到解析器,就像這樣:'return up.substring(0,6)'; – incarnate 2014-12-10 17:00:30