Javascript 使用ng模型设置布尔值时遇到问题

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

使用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" 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;
    }
  }