回答:
AngularJSフォーム要素は、required検証機能を実行するための属性を探します。ブールテストに応じng-requiredてrequired属性を設定できます(たとえば、フィールドAに特定の値がある場合- 選択肢として「学生」を選択した場合、フィールドB- たとえば、学生番号のみが必要です)
例として、<input required>そして<input ng-required="true">本質的に同じものです
なぜこれがこのようになっているか(make <input required="true">またはだけでなく<input required="false">)疑問に思っている場合、それはHTMLの制限によるものです- required属性には関連する値がありません-単なる存在は(HTML標準に従って)要素が必要であることを意味します-したがって、角度には必要な値を設定/設定解除する方法が必要です(required="false"無効なHTMLになります)
<form method="post" action="/foo" novalidate>。繰り返しますが、これはhtml5属性であり、angularJSとは関係ありません。
ng-requiredAngularがスコープ/コントローラー変数を指す場合、Angularはそれを監視して変更を監視し、それに応じて必要な属性を設定すると予想していました。単純なHTML required属性の場合は、そのような柔軟性はありません。番号?そして、私たちは同じトピックについて話していng-attr-requiredますが、どうですか?まったく同じng-requiredですか?
同じ要素を使用ng-showして要素を非表示にし、required属性を追加するとします。
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
次のようなエラーがスローされます:
name = ''の無効なフォームコントロールにはフォーカスできません
これはrequired、hidden要素に検証を課すことができないためです。を使用ng-requiredすると、必要な検証を条件付きで適用するのが簡単になります。
ng-if、ng-show/の代わりに使用して、ng-hideその潜在的な問題を回避することもできます。
HTML属性は、 required="required"このフィールドが有効であることがフォームのために必要であることをブラウザに伝える文です。(required="required"はXHTMLフォームです。使用requiredするだけで同等です)
角度属性 ng-required="yourCondition"手段「IsRequiredこの(yourCondition)」とHTML属性を設定し、動的に、あなたの条件に応じて、ために。
また、HTMLバージョンは混乱を招きます。またはのような条件付きの何かを書くことはできません。属性の存在のみが重要です(存在はtrueを意味します)。これは、Angularがを支援する場所です。required="true"required="false"ng-required