AngularJS跨多个对象将单选按钮绑定到布尔值

AngularJS跨多个对象将单选按钮绑定到布尔值,angularjs,Angularjs,我试图将一组对象绑定到一组单选按钮组。我已经知道它会根据模型生成组,并根据所选的布尔值预先选择正确的单选按钮,但是我不知道如何在单选按钮值更改时将绑定项的值切换为true和false。基本上,我希望它们像互斥的复选框一样工作。我可能可以用实际的复选框来实现这一点,但显然单选按钮是理想的,因为这是它们的预期用途 为了您的方便: HTML: <div ng-app ng-controller="Extensions"> <div ng-repeat="propertyGro

我试图将一组对象绑定到一组单选按钮组。我已经知道它会根据模型生成组,并根据所选的布尔值预先选择正确的单选按钮,但是我不知道如何在单选按钮值更改时将绑定项的值切换为true和false。基本上,我希望它们像互斥的复选框一样工作。我可能可以用实际的复选框来实现这一点,但显然单选按钮是理想的,因为这是它们的预期用途

为了您的方便:

HTML:

<div ng-app ng-controller="Extensions">
    <div ng-repeat="propertyGroup in propertyGroups">
        {{propertyGroup.label}}
        <div ng-repeat="prop in propertyGroup.properties">
            <input type="radio" ng-model="prop.selected" name="prop{{propertyGroup.alias}}" ng-value="true" /> {{prop.value}}
        </div>
    </div>
</div>

问题是您试图将“选定”值分别连接到每个单选按钮。相反,在模型的propertyGroup部分中包含此项


幸运的是,我能够根据自己的需要调整模型,所以这对我来说是可行的,但是我仍然好奇如何在不调整模型的情况下实现这一点,例如,在我收到的模型来自第三方的情况下,发布的更新将要求我发布相同的模型结构。不幸的是,这是唯一的方法。。。如果要添加此类功能,您必须自己手动创建和更新模型。
function Extensions($scope) {
  $scope.propertyGroups = [
    {'label': 'Property 1',
     'alias': 'property1',
     'properties': [{value: 'Value 1', selected: true},{value: 'Value 2', selected: false}]},
    {'label': 'Property 2',
     'alias': 'property2',
     'properties': [{value: 'Value 1', selected: false},{value: 'Value 2', selected: true}]}
  ];
    console.debug($scope.propertyGroups);
}
$scope.propertyGroups = [
    { label : 'Property 1',
      alias : 'property1',
      selected : 'Value 1', // <---------- this stores which value is checked
      properties: [{value: 'Value 1'},{value: 'Value 2'}]},
    { label : 'Property 2',
      alias : 'property2',
      selected : 'Value 2', // <---------- this stores which value is checked
      properties : [{value: 'Value 1'},{value: 'Value 2'}]}
   <div ng-repeat="prop in propertyGroup.properties">

        {{ propertyGroup.selected }} 
        <!-- ^ this is just so you can see it change the model-->

        <input type="radio" 
               ng-model="propertyGroup.selected" 
               name="prop{{propertyGroup.alias}}" 
               ng-value="prop.value" /> {{prop.value}}
    </div>