1. ホーム
  2. angularjs

[解決済み] Angular.js プログラムでフォームのフィールドをダーティに設定する

2022-11-07 18:31:07

質問

プログラムでフォームのいくつかのフィールドを値で更新しているのですが、フィールドの状態を $dirty . のようなことをやっています。

$scope.myForm.username.$dirty = true; はうまくいかないようです。

メソッドがあります。 $setPristine というメソッドがありますが、これはフィールドの状態をリセットするために使うことができます。 $setDirty メソッドはないのですか?

では、どのようにすればいいのでしょうか?

私はこの投稿を見ました。 https://groups.google.com/forum/#!topic/angular/NQKGAFlsln4 が見つからないようです。 $setDirty メソッドを見つけることができません。私はAngularバージョン1.1.5を使用しています。

どのように解決するのですか?

AngularJS 1.3.4以降では、以下のように $setDirty() を使うことができます ( ソース ). 例えば、エラーが発生し、必須とマークされた各フィールドに対して、次のようにすることができます。

angular.forEach($scope.form.$error.required, function(field) {
    field.$setDirty();
});