2017-02-05 29 views
0

我有一個多部分窗體,我希望能有一個外部的next/prev導航。但是,當我導航到下一個時,我需要能夠驗證表單的每個部分。通過外部事件驗證窗體的角材料

我有下面的示例形式定義:

<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') 

任何想法,將不勝感激。

本質,詮釋後,他的例子,我希望字段用紅色點亮一次我按NEXT: http://codepen.io/Vladimir_M/pen/OWEjOd

更新:更新codePen包括一個解決方案,我發現。

回答

0

經過一番嘗試,我找到了一種方法來實現我以最少的代碼完成後的效果。獲取表單的範圍並將表單的$提交的屬性設置爲true就可以了。它評估整個表單。

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

隨意提出更好的方法。