如何在Angular 5中将预先填充的数据从对象绑定到单选按钮

时间:2018-02-22 18:41:07

标签: angular angular-ng-if

我正在开发Angular 5应用程序。我得到了性别的单选按钮,其价值是基于它接收的值预先填充的无线电选择,我需要知道如何在html模板中使用ng-if内联。 GenderType:string其中值1表示男性,2表示女性。

我已经尝试了* ngIf,但它没有成功

 <div class="k-form-field">
     <span>Gender</span>
          <input type="radio" name="gender" id="female" class="k-radio" *ngIf:{{respondent.genderType='1'}} === checked="checked" disabled>
           <label class="k-radio-label" for="female">Female</label>

          <input type="radio" name="gender" id="male" class="k-radio" disabled>
             <label class="k-radio-label" for="male">Male</label>
  </div>

3 个答案:

答案 0 :(得分:1)

您不需要ngIf来更改属性的值。您只需使用一个javascript块作为条件属性:

<input 
   type="radio"
   name="gender"
   id="female"
   [attr.checked]="respondent.genderType=='1' ? 'checked' : null" />

另一种选择是以“Angular方式”使用表单,使用ngModelReactive Forms

答案 1 :(得分:1)

假设genderType 1是女性,2是男性,您只需要在checked属性中绑定它。你不需要ngIf。 NgIf用于显示或隐藏html元素。试试这个(我也删除了禁用的属性):

<div class="k-form-field">
     <span>Gender</span>
          <input type="radio" name="gender" id="female" class="k-radio" [attr.checked]="respondent.genderType === '1' ? 'checked' : null">
          <label class="k-radio-label" for="female">Female</label>

          <input type="radio" name="gender" id="male" class="k-radio" [attr.checked]="respondent.genderType === '2' ? 'checked' : null">
          <label class="k-radio-label" for="male">Male</label>
  </div>

答案 2 :(得分:0)

对我有用的最终答案

<div class="k-form-field">
    <span>Gender</span>
      <input type="radio" name="gender" id="female" class="k-radio" [attr.checked] ="respondent.genderType=='2' ? 'checked' : null" disabled>
      <label class="k-radio-label" for="female">Female</label>

       <input type="radio" name="gender" id="male" class="k-radio" [attr.checked] ="respondent.genderType=='1' ? 'checked' : null" disabled>
       <label class="k-radio-label" for="male">Male</label>
</div>