0

角度jsのフォームに必要なフィールドの数を数える方法を教えてください。 私のフォームには2つの必須フィールドがあります(電子メール、選択ビュー)。私は私の電子メールを記入すると、私のページに2を表示したいです.1だけ表示する必要があります。しかし、選択ビューから値を選択すると、 0の値。角度jsの形式で必須フィールドのカウント数?

ので、私はディレクティブを作り、コントローラにカウント値を放送しようとするが、それはここで正しい値 を与えていませんが、私のコードは http://codepen.io/anon/pen/WGzgdE?editors=1010#anon-login

angular.module('app',[]).directive('requiredCount',function($rootScope){ 
     return { 
      restrict: 'EA', 
      require: '^form', 
      link: { 
       post: function (scope, elem, attr, ctrls) {// jshint ignore:line 
        console.log('ctrls.$name', ctrls.$name); 
        scope.$watch(function() { 
         if (ctrls.$error.required) { 
          return ctrls.$error.required; 
         } 

        }, function (newValue, oldValue) { 
         if (newValue && newValue !== oldValue) { 
          var count = newValue.length; 
          newValue.forEach(function (item) { 
           if (item.$error.required) { 
            // if (item.$valid) { 
             count--; 
            // } 
           } 
          }); 

         } 
        }); 
       } 
      } 
     }; 
    }).controller('app',function($scope){ 
    $scope.$on('count',function(e,a){ 
    $scope.count =a 
    }) 
}); 

答えて

0

であるあなたは、フォームを使用することができます。$ error.required.length

<div ng-show="form.$invalid"> 
     Sorry but {{form.$error.required.length}} errors found. 
</div> 
1

あなたは、フォーム要素と要素の「NG-モデル」属性のname属性が欠落しています。

<form name='test' novalidate> 
<div class="form-group"> 
<label for="email">Email address:</label> 
<input type="email" class="form-control" ng-model="user.email" id="email" required> 
</div> 
<div class="form-group"> 
<label for="pwd">Password:</label> 
<input id="pwd" name="pwd" class="form-control" 
    type="password" ng-model="user.password" required></input> 
</div> 
<div class="checkbox"> 
<label><input type="checkbox"> Remember me</label> 
</div> 
<select name="carlist" class="form-control" ng-model="user.carlist" id="carlist" required> 
<option value></option> 
<option value="volvo">Volvo</option> 
<option value="saab">Saab</option> 
<option value="opel">Opel</option> 
<option value="audi">Audi</option> 
</select> 
<button type="submit" class="btn btn-default">Submit</button> 
</form> 

"test。$ error.required.length"は、必須フィールドの数を表示します。ここで

required field count {{test.$error.required.length}} 

がDEMOである - 私はすでに同じ答えを掲載 http://codepen.io/anon/pen/jrzZLX?editors=1010#anon-login

+0

、あなたの答えの違い..私はそれが名前とNG-モデルを追加するために言及した最初の行自体で –

+0

@AnilKumarRamは何ですか$ error.required要素を取得するようにします。 – Hmahwish

+0

これは基本的な部分です...すべての人が名前とモデルを書いています...ここでの問題は長さのカウントです.. –

関連する問題