我有一个包含组织的项目列表,每个组织都有两个属性TargetIsSelected
和InfoIsSelected
,可以是true
或false
,并且是互斥的。当表单加载时,我希望为每个组织行选择适当的选项,当用户更改选项时,我希望在相应组织的基础模型中更新更改。
我的数据看起来像
$scope.Orgs = [{ "ID": "1", "Description": "Org 1", "TargetIsSelected": false, "InfoIsSelected": true },
{ "ID": "2", "Description": "Org 2", "TargetIsSelected": false, "InfoIsSelected": false },
{ "ID": "3", "Description": "Org 3", "TargetIsSelected": false, "InfoIsSelected": false }];
});
和HTML
<body ng-controller="MainCtrl">
Target | Info
<div data-ng-repeat="org in Orgs">
<input type="radio" name="org{{$parent.$index}}" ng-model="$parent.TargetIsSelected" data-ng-value={{org.TargetIsSelected}}>
<input type="radio" name="org{{$parent.$index}}" ng-model="$parent.InfoIsSelected" data-ng-value={{org.InfoIsSelected}}>
{{org.Description}}
<br />
</div>
<br />
{{ Orgs | json }}
问题是当屏幕加载时未选择数据(TargetIsSelected
和InfoIsSelected
)的默认选项,并且更改选项未传播到每行的模型。目前,我只能从整个选项列表中选择一个选项。我理解ng-repeat
创建了一个子范围,因此我使用$parent
来引用该模型,但它似乎不起作用。任何帮助将不胜感激。
我已设置Plunker