在ng repeat中我使用了一个单选按钮,它将整个人物对象分配给可验证的范围,如下所述
<li ng-repeat="person in people">
<label>{{person.name}}
<input type="radio" ng-model="$parent.selectedPerson" name="name" value="{{person}}" required />
</label>
</li>
因此,当我选择一个人时,我想将其所有属性分配给selectedPerson范围变量,以便我可以稍后访问和打印其属性以显示有关所选人员的信息。 有些我如何将对象分配给selectedPerson范围变量但不能打印其属性,请看一下场景的JSFiddle。
我非常感谢你对此的帮助。
答案 0 :(得分:3)
您可以使用ngValue将所选对象绑定到ngModel,这在您的jsfiddle中有效:
<input type="radio" ng-model="$parent.selectedPerson" ng-value="person" name="name" value="{{person}}" required />
Angular Documentation on ngValue有待进一步说明。
答案 1 :(得分:3)
当您使用{{}}表示法时,Angular会在页面加载时评估括号内的表达式,如果第一个循环后表达式结果发生更改,则会再次计算表达式。如果一个对象在大括号内,则它是字符串化的,通常用例是调试。
因此,'value = {{person}}'被计算为一个字符串,然后您将该字符串分配给对象selectedPerson。
而是将名称字符串分配给selectedPerson的name属性: ng-model ='$ parent.selectedPerson.name'value ='{{person.name}}'