Angular 2 (2.0.0) を使用して、 Angular Formsを使用してフィールドを必須として動的にマークする推奨される方法は何ですか?
すべての例で、required 属性は次のように追加されています。
<input type="text" class="form-control" id="name" required>
バインドしているモデルにIsRequired
プロパティがある場合、それは true/false になりますか?
次のようなものを使用する場合:
<input [(ngModel)]="field.Value" type="text" value="{{field.Value}}" [attr.required]="field.IsRequired"/>
これはページ上で次のようにレンダリングされます ( ="true"に注意してください):
<input type="text" required="true" />
何らかの理由で、実際の値 ( ="true" ) がある場合、Angular はこの属性を認識しないように見えるため、このフィールドが空白の場合でも、フォーム自体は有効です。
<form class="ng-untouched ng-pristine ng-valid">
required
したがって、 ではなくand を使用する必要があるように見えますrequired="true"
が、その属性を動的に追加するにはどうすればよいでしょうか?
うまくいかないもの:
<input type="text" {{ getRequiredAttr(field) }} />
フィールドに基づいて「必須」の文字列を返す関数を作成できると思いましたが、テンプレートエラーが発生するだけです。
required
これを達成し、自分の属性に対してのみレンダリングする方法はありますか? または、値が true/false の場合に Angular にこの属性を認識させる方法はありますか?
FWIW -プロパティに基づいて*ngIf
2 つのほぼ同一のコントロールを記述し、属性を使用して 1 つをハードコードするために使用できることを確認しましたが、それはかなりハッキリしているようです。もっと良い方法があることを願っています!<input type='text' />
IsRequired
required