2016-05-10 55 views
3

在纳克重复我已经使用的无线按钮,下面无法使用纳克重复

<li ng-repeat="person in people"> 
    <label>{{person.name}} 
    <input type="radio" ng-model="$parent.selectedPerson" name="name" value="{{person}}" required /> 
    </label> 
</li> 

所以当如所提到的整个人对象veriable分配给范围上创建JSON对象蝇检索的属性我选择一个人,我想将其所有属性分配给selectedPerson范围变量,以便我可以稍后访问并打印其属性,以显示有关所选人员的信息。 一些如何能够将对象分配给selectedPerson范围变量但无法打印其属性,请查看该场景的JSFiddle。

​​

我非常感谢您对这个帮助。

回答

3

您可以使用ngValue到选定的对象ngModel绑定,这个工作在你的jsfiddle:

<input type="radio" ng-model="$parent.selectedPerson" ng-value="person" name="name" value="{{person}}" required /> 

Angular Documentation on ngValue作进一步的解释。

3

当您使用{{}}表示法时,Angular会在页面加载时评估括号内的表达式,如果表达式结果在第一个周期后更改,则会再次进行评估。如果一个对象位于大括号内,那么它就会被串行化,并具有通常的调试用例。

因此'value = {{person}}'被评估为一个字符串,然后您将其分配给对象selectedPerson。

而是指定名称字符串selectedPerson的name属性: NG-模型= '$ parent.selectedPerson.name' 值= '{{person.name}}'

+2

下面菲尔的答案是正确的方法。留下来,因为我希望它解释了如何评估表达式以及为什么{{object}}实际上评估为一个字符串。 – Tyler

+1

感谢泰勒为您的输入,因为我只是想在这种情况下保存一个属性您的建议将工作,但我有6至7其他属性,以及需要将范围范围变量范围变量。 –

+0

使用菲尔的答案。就像我说过的,你应该真的了解角度如何评估视图中的表达式与使用像ng-value这样的指令来传递数据。 – Tyler