2016-06-20 10 views
0

ng-messageのメッセージで、ng-maxlengthに入力された値を取得するにはどうすればよいですか?たとえば
ng-messageのng-maxlengthの長さを取得する方法

<form name="myForm"> 
    <input type="text" 
      name="myName" 
      ng-model="name" 
      ng-maxlength="5"/> 

    <div ng-messages="myForm.myName.$error" style="color:maroon" role="alert"> 
    <div ng-message="maxlength">Please enter up to {{??}} characters</div> 
    </div> 
</form> 
+0

を使用してみはMAXLENGTHのための変数を持っています –

答えて

0

は、あなたの周りに他の方法がないそれを

<form name="myForm"> 
    <input type="text" 
      name="myName" 
      ng-model="name" 
      ng-minlength="nameConstraint.maxlength"/> 

    <div ng-messages="myForm.myName.$error" style="color:maroon" role="alert"> 
    <div ng-message="maxlength">Please enter up to {{nameConstraint.maxlength}} characters</div> 
    </div> 
</form> 

を再利用することができますので、maxLengthのディレクティブ属性MAXLENGTHを見て、検証するために$バリデータを使用して変数に入れます長さここで

は角でMAXLENGTHのコードのディレクティブです:

var maxlengthDirective = function() { 
    return { 
    restrict: 'A', 
    require: '?ngModel', 
    link: function(scope, elm, attr, ctrl) { 
     if (!ctrl) return; 
     var maxlength = -1; 
     attr.$observe('maxlength', function(value) { 
     var intVal = toInt(value); 
     maxlength = isNaN(intVal) ? -1 : intVal; 
     ctrl.$validate(); 
     }); 
     ctrl.$validators.maxlength = function(modelValue, viewValue) { 
     return (maxlength < 0) || ctrl.$isEmpty(viewValue) || (viewValue.length <= maxlength); 
     }; 
    } 
    }; 
}; 
0

この

<div ng-messages="myForm.myName.$error" style="color:maroon" role="alert"> 
    <div ng-if="name.length <= 5" > 
    Please enter up to {{name.length}} characters 
    </div> 
</div> 
関連する問題