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"