required
とng-required
(フォーム検証)の違いは何ですか?
AngularJSフォーム要素は、検証機能を実行するためにrequired
属性を探します。 ng-required
を使用すると、ブール値テストに応じてrequired
属性を設定できます(たとえば、フィールドBにのみ必要 - 学生番号 - フィールドAに特定の値がある場合 - 選択項目として "student"を選択した場合)
例として、<input required>
と<input ng-required="true">
は本質的に同じものです。
なぜこれがであるのか疑問に思っているなら(そして単に<input required="true">
や<input required="false">
を作るのではなく)、それはHTMLの限界 - required
属性によるものです。関連付けられた値はありません - 存在するということは(HTML標準に従って)要素が必須であることを意味します - そのためangleは必要な値を設定/設定解除する方法を必要とします(required="false"
は無効なHTMLになります)
私は tiago's answer のためにアドオンを作りたいです。
ng-show
を使用して要素を隠し、その上にrequired
属性を追加するとします。
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
のようなエラーをスローします:
Name = ''の無効なフォームコントロールはフォーカスできません
これは、required
要素にhidden
検証を課すことができないためです。 ng-required
を使用すると、条件付き適用検証が簡単になります。
HTML属性required="required"
は、フォームを有効にするためにこのフィールドが必要であることをブラウザに伝えるステートメントです。 (required="required"
はXHTML形式です。単にrequired
を使用することは同等です)
Angular属性ng-required="yourCondition"
は 'isRequired(yourCondition)'を意味し、HTML属性を動的に設定しますあなたの状態に応じてあなたのために。
また、HTMLバージョンはを混乱させますが、できないことはできません。 required="true"
やrequired="false"
のような条件付きのものを書いてください。属性の存在だけが重要です(現在は真を意味します)。これがAngularがng-required
を手助けする場所です。