フォームを使用して、フォームの横に表示されるリストに要素を追加しています。マークアップは次のとおりです。
<form name="thingForm">
<input required type="text" ng-model="thing.name"/>
<input required type="text" ng-model="thing.value"/>
<input type="submit" ng-click="addThing(thing)"/>
</form>
<ul>
<li ng-repeat="thing in things">{{thing.name}} with value of {{thing.value}}</li>
</ul>
そして、私が持っているコントローラーでは:
$scope.things = [];
$scope.addThing = function(thing) {
$scope.things.push(thing);
$scope.thing = {};
};
jsfiddle の作業: http://jsfiddle.net/cXU2H/1/
ご覧のとおり、モデルを空にすることでフォームを空にすることができますが、入力に必要なタグがあるため、ブラウザーにはまだエラー メッセージが表示されます (少なくとも Chrome では表示されます)。
同様の質問を見て、次のことを行いました。
- 私はこの答えも見ました: https://stackoverflow.com/a/16296941/545925ただし、jsfiddle は私の例とまったく同じように動作します: 入力がクリアされた後も
ng-invalid-required
クラスが残っています (また、トリガーします) HTML5 エラー メッセージ) 私は 1.1.x ブランチ$setPristine()
にいないため、利用できません$setPristine()
同じように振る舞う
ng-invalid-required
もちろん、フォームの要素を反復処理してすべてのクラスを削除する関数を作成することはできますがng-invalid
、それは私がこれを解決したい方法ではありません。それが私がjQueryで行うことです。