无法使用ng-repeat检索动态创建的JSON对象的属性

时间:2016-05-10 09:43:39

标签: javascript angularjs json

在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。

JSFiddle

我非常感谢你对此的帮助。

2 个答案:

答案 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}}'