2017-02-05 5 views
0

私は複数の部分からなるフォームを持っていますが、私はそれに外部の次の/以前のナビゲーションがあることを望んでいました。しかし、次のページに移動するときにフォームの各部分を検証できる必要があります。アングル材質は外部イベントによってフォームを検証します

私は、次のサンプルフォーム定義があります:フィールドが相互作用している場合は、検証が発見し、エラーテキストが正しく表示されて働いている、

<form layout="column" name="nProfileForm1"> 
    <md-input-container> 
     <label>City</label> 
     <input ng-model="profile.city" required="" name="nCity"> 
     <div ng-messages="nProfileForm1.nCity.$error" ng-if="nProfileForm1.nCity.$touched&&!nProfileForm1.nCity.$valid"> 
      <div ng-message="required">City is required.</div> 
     </div> 
    </md-input-container> 
</form> 

を。しかし、外部イベントが発生した場合は、すべてのフォームフィールドの検証をトリガする方法を見つけることはできません。すべてのフォーム部分に自分の送信ボタンを追加するのは多少間違っているようです。任意のアイデアをいただければ幸いです

$scope.$broadcast('schemaFormValidate') 

:私は何を探しています、スキーマ-フォームが何に似たものです。私が見つけた一つの解決策を含むように更新codePen: http://codepen.io/Vladimir_M/pen/OWEjOd

UPDATE:彼は私は次の押したら、フィールドが赤に点灯したいの例を、以下のint型基本的に

、。

答えて

0

私はいくつかの試みの後に、私が最小限のコードで効果を達成する方法を見つけました。フォームのスコープを取得し、フォームの$ submittedプロパティをtrueに設定すると、そのトリックが実行されます。フォーム全体を評価します。

$scope.doSubmit = function(){ 
    var formScope = angular.element(nProfileForm1).scope(); 
    formScope.nProfileForm1.$submitted = true; 
    } 

より良い方法をお勧めします。

関連する問題