【问题标题】:When added ngModel to Radio Button default checked is not working in angular 6将 ngModel 添加到单选按钮时,默认选中在角度 6 中不起作用
【发布时间】:2023-04-11 09:42:02
【问题描述】:

将 ngModel 添加到单选按钮时,默认选中的选项不起作用。如果未使用 ngmodel,则选中的选项正常。但我想要这两个选项。有很多与此相关的问题,但没有一个解决方案对我有用,那么只有我提出了新问题。如果有人澄清为什么在添加 ngModel 时检查不起作用,解决方案是什么?

   Tried code:     

        <div class="col-md-9">
            <div class="form-check form-check-inline">
              <input class="form-check-input" type="radio" name="radio_default_inline" id="defaultInlineRadio1" value="" [(ngModel)]="name.Status"[checked]="!isChecked">
              <label class="form-check-label" for="defaultInlineRadio1">Active</label>
            </div>
            <div class="form-check form-check-inline">
              <input class="form-check-input" type="radio" name="radio_default_inline" id="defaultInlineRadio2" value [(ngModel)]="name.Status">            
              <label class="form-check-label" for="defaultInlineRadio1">Inactive</label>
            </div>
          </div>

另一种方法:

<input class="form-check-input" type="radio" name="radio_default_inline" id="defaultInlineRadio1" value="Active" [(ngModel)]="name.Status">
              <label class="form-check-label" for="defaultInlineRadio1">Active</label>       

              <input class="form-check-input" type="radio" name="radio_default_inline" id="defaultInlineRadio2" value="InActive" [(ngModel)]="name.Status">
 <label class="form-check-label" for="defaultInlineRadio1">Inactive</label>

另一种方法:

  <input class="form-check-input" type="radio" name="radio_default_inline" id="defaultInlineRadio1" value="Active" checked [(ngModel)]="name.Status">
                          <label class="form-check-label" for="defaultInlineRadio1">Active</label>       

                          <input class="form-check-input" type="radio" name="radio_default_inline" id="defaultInlineRadio2" value="InActive" [(ngModel)]="name.Status">
             <label class="form-check-label" for="defaultInlineRadio1">Inactive</label

    ts:

        this.name.Status = 'Active';

另一种方法:

         <input class="form-check-input" type="radio" name="radio_default_inline" id="defaultInlineRadio1" value="ngModel" checked [(ngModel)]="name.Status">
                  <label class="form-check-label" for="defaultInlineRadio1">Active</label>       

                  <input class="form-check-input" type="radio" name="radio_default_inline" id="defaultInlineRadio2" value="ngModel" [(ngModel)]="name.Status">
     <label class="form-check-label" for="defaultInlineRadio1">Inactive</label

我希望默认检查选项和绑定都有效。如何实现这一点?不要说重复的问题我尝试了与此问题相关的所有解决方案。

【问题讨论】:

    标签: angular


    【解决方案1】:

    您希望如何确定复选框的值?是模型领先还是被检查的属性领先? Angular 应该如何解决这个问题?快速回答:Angular 认为您的模型领先,因此您的检查属性不起作用。您只需在 ts 文件中修改模型,而不是使用 checked 属性。

    喜欢:

    set isChecked(checked: boolean) {
       this._isChecked = checked;
       this.name.Status = checked;
    }
    

    还有一件事;您显然必须设置单选按钮的值。以我的例子来判断真假。

    【讨论】:

    • 你能为此添加示例吗?
    • 为什么使用两个变量 isChecked 和 _isChecked
    • isChecked 成为了 setter 方法;如果要保持实际值,则必须将其存储在(私有)变量中。
    • 什么不起作用?你的代码是什么样的?您是否将值添加到模板中的单选按钮?
    • 是的,也添加了模板中的值。单选按钮默认不选中。
    【解决方案2】:

    你应该试试语法

    [(ngModel)] = "nameVariable"
    [value]= 113 // typeof = number
    // or
    [value]= "option-1" // typeof = string
    

    【讨论】:

      猜你喜欢
      • 2017-07-15
      • 2020-05-28
      • 2019-03-29
      • 2020-11-01
      • 2021-10-07
      • 2020-12-23
      • 2017-01-01
      • 2015-11-02
      • 2015-07-18
      相关资源
      最近更新 更多