10

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 -プロパティに基づいて*ngIf2 つのほぼ同一のコントロールを記述し、属性を使用して 1 つをハードコードするために使用できることを確認しましたが、それはかなりハッキリしているようです。もっと良い方法があることを願っています!<input type='text' />IsRequiredrequired

4

2 に答える 2

14

簡単にできるのに、なんでこんなに複雑にする必要があるの?

[required]="isFieldRequired() ? 'required' : null"
于 2017-09-08T06:47:50.447 に答える