SubmitおよびCancel Butoonを使用してフォームを作成しようとしていて、AngularJSを使用して検証しています。AngularJSフォームの送信/キャンセルボタン
しかし、検証動作はちょっとファンキーです。私は、バリデーションをviewValueにすることを好むでしょうが、少なくともサブミットボタンが押されるまで延期されるべきです。現在、ユーザーがテキストをボックスに入力して送信せずにぼかした場合、modelValueがまだ空のため、検証エラーがスローされます。
カスタムディレクティブを使用せずに、またはコントローラを変更する方法があることを願っています。フォームはネストされた構造の一部として構想されているので、理想的には自己完結型です。ここで
http://plnkr.co/edit/Upn3n4XM6GC1o4KigFnl?p=preview
<body ng-app="mainModule">
<div ng-controller="mainController">
<form name="personForm" ng-model-options="{ updateOn: 'submit' }" novalidate>
<md-input-container>
<label>First name:</label>
<input id="firstNameEdit" type="text" name="firstName" ng-model="person.firstName" required/>
<div ng-messages="personForm.firstName.$error" role="alert">
<div ng-message="required">You did not enter a first name</div>
</div>
</md-input-container>
<br/>
<md-input-container>
<label>Last name:</label>
<input id="lastNameEdit" type="text" name="lastName" ng-model="person.lastName" required/>
<div ng-messages="personForm.lastName.$error" role="alert">
<div ng-message="required">You did not enter a last name</div>
</div>
</md-input-container>
<br/>
<md-button type="submit">Save</md-button>
<md-button ng-click="personForm.$rollbackViewValue();">Cancel</md-button>
<!-- <ng-include src="'addressForm.html'"></ng-include> -->
</form>
<br/>
<strong>
<label for="userDebugText">Person:</label>
</strong><br/>
<!-- <textarea id="userDebugText">{{person | json}}</textarea><br/> -->
<pre id="userDebugText">{{person | json}}</pre>
<br/>
<strong>
<label for="firstNameTxt">personForm.firstName:</label>
</strong><br/>
<pre id="firstNameTxt">{{personForm.firstName | json}}</pre>
<strong>
<label for="lastNameTxt">personForm.lastName:</label>
</strong><br/>
<pre id="lastNameTxt">{{personForm.lastName | json}}</pre>
<strong>
<label for="lastNameTxt">personForm:</label>
</strong><br/>
<pre id="personFormTxt">{{personForm | json}}</pre>
</div>
</body>
あなたの質問は意味がありません。それを言い換えてください – Aravind