Binding radio button to complex object prevents selected
我把我的收音机按钮绑在我的模特身上,就像这样:
1 | <input type="radio" ng-model="formData.style" ng-value="{{style}}"> |
其中,样式是具有多个属性的复杂对象。这是在ng重复中完成的,所以我有其中的倍数。样式可以是这样的:
1 | {"name":"kran","size":"2"} |
等等…我希望将完整的对象绑定到模型,以便稍后将其保存为状态,并检索它以继续使用它。但是当我用保存的"状态"更新模型时,用户界面不会更新以显示选择了哪个单选按钮。我认为这与绑定到复杂对象有关,而不是一个简单的值,但我不确定。
Style对象来自另一个类似这样的数组:
1 |
我如何解决这个问题?
我的第一个回答有点错。我在这里举了一个很好的例子:
https://jsfiddle.net/lisapfisterer/szp3dudh/
HTML
1 2 3 4 5 6 7 8 9 | <form> <label>Radio-Buttons</label> <br/> <label ng-repeat="style in styles"> <input type="radio" ng-model="formData.style" ng-value="style"> {{style.name}} </label> <br/> </form> |
角晶状体
1 2 3 4 5 6 7 8 | var first = { name:"First Name", value:"First Value" }; var second = { name:"Second Name", value:"Second Value" }; var third = { name:"Third Name", value:"Third Value" }; $scope.styles = [first, second, third]; $scope.formData = {}; $scope.formData.style = $scope.styles[0]; |
我在努力得到工作的公认答案,我怀疑是因为ng repeat创建子作用域,因此必须绑定到$parent:
试试这个
HTML
1 2 3 4 5 6 7 | <form> <label>Radio-Buttons</label> <br/> <label ng-repeat="style in styles"> <input type="radio" ng-model="$parent.formData.style" ng-value="style"> {{style.name}} </label> <br/> |