Javascript 在使用双向装订时,如何预选单选按钮?

Javascript 在使用双向装订时,如何预选单选按钮?,javascript,html,angular,Javascript,Html,Angular,我正在尝试获取一些无线电输入,其中一个必须预选 代码如下: <div class='form-group que-box' *ngFor="let option of options"> <input type='radio' id="{{option.optionId}}" name="radio" [(ngModel)]="optionSelected" value='{{option.optionId}}'> <label for='{{o

我正在尝试获取一些无线电输入,其中一个必须预选

代码如下:

<div class='form-group que-box' *ngFor="let option of options">
     <input type='radio' id="{{option.optionId}}" name="radio" [(ngModel)]="optionSelected" value='{{option.optionId}}'>
     <label for='{{option.optionId}}'><span class="que">{{option.text}}</span></label>
 </div>
但是按钮没有被预选。我尝试有条件地将选中的属性放在那里,但也没有帮助。Html使用选中的属性呈现,但选项仍然没有被预选。我还检查了选项Selected是否始终包含所需的值。

将选项Selected设置为您选择的选项的值要选择“应该工作”,请执行以下操作:

this.optionSelected = option[0].optionId;
如果optionId是一个数字或字符串以外的任何内容,则使用value={{option.optionId}}设置值将不起作用,因为它将作为字符串进行计算,因此它将与选中时使用的选项Selected不匹配,即在引擎盖下使用的Angular

一个快速解决方法是强制选项也被选为字符串:

this.optionSelected = option[0].optionId + '';
解决此问题的正确方法是使用设置value属性

在角度2和角度4中:

在AngularJS Angular 1中:


我也做过类似的事情。选项Selected在我的代码中包含有效值。@sudheer singh当您使用value而不是ng value时,该值将始终被解释为字符串。可能是this.optionSelected=option[0]。optionId+;会有用的。如果您不想这样做,那么在HTML中使用ng值。将值更改为[value]有效。感谢您指出这一点。@sudheer singh更新了答案,以反映我们在评论中讨论的内容,并指出AngularJS和AngularJS的解决方案。
[value]="optionSelected"
ng-value="optionSelected"