Javascript 使用ng模型设置布尔值时遇到问题
使用ng模型将布尔值设置为true时遇到问题。当用户单击单选按钮时,将为整个对象指定布尔值,而不是将布尔值更改为true 这是我的HTML:Javascript 使用ng模型设置布尔值时遇到问题,javascript,angularjs,Javascript,Angularjs,使用ng模型将布尔值设置为true时遇到问题。当用户单击单选按钮时,将为整个对象指定布尔值,而不是将布尔值更改为true 这是我的HTML: <div ng-repeat="choice in questions[counter].choices" class="answer"> <input type="radio" name="options" value="{{choice}}" id="{{choice}}" ng-model="choice.selected" n
<div ng-repeat="choice in questions[counter].choices" class="answer">
<input type="radio" name="options" value="{{choice}}" id="{{choice}}" ng-model="choice.selected" ng-value="true"/>
<label class="radio" for="{{choice}}">
{{choice.selected}}
<h3>{{choice.text}}</h3>
</label>
</div>
这是一个例子
我做错了什么?单选按钮的计算结果不是真/假值,它们的计算结果是绑定到的对象。如果需要真/假值,请使用复选框
<input type="checkbox" name="{{choice.text}}" ng-model="choice.selected" ng-value="true"/>
将您的输入更新为以下内容:
<input type="radio" name="options" id="{{choice}}"
ng-model="choice.selected" ng-value="true" ng-change="updateOptions(questions[counter].choices,choice);"/>
并将此功能添加到控制器:
$scope.updateOptions = function(choices, choice){
for(var i=0; i<choices.length; i++){
choices[i].selected = choices[i].id==choice.id;
}
}
$scope.updateOptions=函数(选项,选项){
对于(var i=0;我相信您希望将其更改为value=“{{choice.selected}”
检查此项:不太清楚您想做什么…@Nayish我正在尝试做一个测验应用程序,所以我希望当用户选择单选按钮时,selected的属性变为true。这很好。但是有使用单选按钮的选项吗?因为我想限制用户选择一个答案。这非常有效!所以ng change会监听是否更改ng型号?否,它将侦听单选输入按钮的更改。该功能将处理选项。
$scope.updateOptions = function(choices, choice){
for(var i=0; i<choices.length; i++){
choices[i].selected = choices[i].id==choice.id;
}
}