AngularJS单选按钮选中的值不起作用

时间:2017-06-22 13:18:13

标签: javascript angularjs

您好我正在开发Angularjs和web html中的Web应用程序。男性和女性都有两个单选按钮。我希望默认情况下将男性设置为已选中。我尝试了很多方法,但它没有用。最后我尝试使用ng-checked =“True”并且它有效。但当我检查男性时,我在角度代码中得到了不确定。

<label for="male" class="male">
                                {{ 'Male' | translate }}
                                <span class="input-icon"><img src="images/male-icon.png"></span>
                                <input type="radio" id="male" name="selector" ng-model="Gender" value="M" ng-checked="true">
                                <span class="selector-male"></span>
                            </label>
                            <label for="female" class="female">
                                {{ 'Female' | translate }}
                                <span class="input-icon"><img src="images/female-icon.png"></span>
                                <input type="radio" id="female" name="selector" ng-model="Gender" value="F">
                                <span class="selector-female"></span>
                            </label>

以上代码默认选择男性。但问题是,当我选择女性时,我会在下面的代码中找到女性。

  Gender: $scope.Gender

每当我不选择任何东西时(默认情况下会点击男性)我在性别:$ scope.Gender中未定义。我可以知道为什么我会变得不确定吗?任何帮助,将不胜感激。谢谢

2 个答案:

答案 0 :(得分:0)

问题是:

ng-checked=true会将复选框设置为true,而不是相关的currentValue。要修复,你应该:

HTML中的

ng-checked="Gender"和控制器中的$scope.Gender = 'M'

如果您不想在控制器中添加任何内容,请将代码包装在div中:

<div ng-init="Gender='M'"><label></label></div>

Plunkr:https://plnkr.co/edit/i4WK990a8zHyYkoW8pIb?p=preview

答案 1 :(得分:0)

删除名称属性并进行ng-checked,即可正常工作。