2016-11-21 6 views
0

こんにちは私はAngularjsの初心者です。動的検証を構築したいと思います。できるだけ早くコードを短縮します。anglejsのng-repeatで動的に検証する方法

JS

$scope.inputValidates = [ 
     { 'name':'name', 
     'validate':'required', 
     }, 
     { 'name':'email', 
     'validate':'type = email', 
     }] 

HTML

<div ng-repeat="vitem in vm.inputValidates"> 
      <input name={{vitem.name}} ng-model="vm.useraccount[vitem.name]"    {{item.validate}}> 
</div> 

私はこのために時間を割いて

<input name=name ng-model="vm.useraccount[vitem.name] required> 
<input name=name ng-model="vm.useraccount[vitem.name] type = email> 

おかげで、この入力結果が欲しいです。

答えて

0

使用ng-required

<div ng-repeat="vitem in vm.inputValidates"> 
    <input name={{vitem.name}} ng-model="vm.useraccount[vitem.name]" ng-required="item.validate"> 
</div> 

ところで、私はあなたの$scopeinputValidatesを割り当てご覧ください。だから、vm.inputValidatesではなく、inputValidatesで見てください。

+0

感謝をngのリピートおよび使用NG-スイッチを使用してレンダリングテキストボックスに適用され、両方が含まれています。それでも私は問題があります。私が 'ng-required = "item.validate"'を使用する場合、必要な検証のみを使用できますか?他の検証はどうですか? –

+0

あなたは正しいです。あなたが必要と思われるのは、 'ng-repeat'の中に動的にディレクティブを追加することです。私は初心者の方がいいと思っています。これらの入力は本当に' ng-repeat'の中にある必要がありますか?おそらく、これを再考し、AngularJS検証(https://docs.angularjs.org/guide/forms) – lucasnadalutti

0

サンプルHERE

された試料は、必要なパターンの検証は、お使いの検証タイプに基づいてあなたの答えのための

<div ng-repeat="field in fields"> 
    <div style="width:600px"> 
     <div ng-form name="validMe" style="width:58%;float:left" ng-switch="field.validationType"> 
     {{field.name}} : 
     <div ng-switch-when="required"> 
      <input id="input{{$index}}" name="input{{$index}}" type="text" ng-model="field.value" required> 
      <span style="color: #a94442" ng-show="validMe['input\{\{$index\}\}'].$error.required ">Field Required!</span> 
     </div> 
     <div ng-switch-when="email"> 
      <input type="email" id="input{{$index}}" name="input{{$index}}" ng-model="field.value" ng-pattern="/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-][email protected][a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/"> 
      <span style="color: #a94442" ng-show="validMe['input\{\{$index\}\}'].$error.pattern">Not a valid email!</span> 
     </div> 
     </div> 
    </div> 
</div> 
関連する問題