有没有办法将对象用于单选按钮的ng值?
想象一下,你有一个单选按钮,其ng模型是一个对象,如下所示:
modelObject: {val:'', text:''}
这就是单选按钮:
<input type="radio" ng-model="data.modelObject" ng-value=""/>
有没有办法做以下事情(显然它不起作用)
<input type="radio" model="data.modelObject" ng-value="val:option.id, text:option.text"/>
? 感谢
我知道我可以使用ng-change指令。我只是想知道我问的是否有可能,它会非常聪明
编辑: 根据评论中的要求,我提供了一些关于我的设置的额外信息。
我想在模型中保存按钮的值及其标签。所以假设我的控制器中有一个名为impactOptions的数组和一个用于创建按钮的ng-repeat指令:
<div ng-repeat="option in impactOptions" >
<input type="radio" ng-model="data.modelObject.val" id="rbGroup{{option.id}} ng-value="option.id"/>
<label for="rbGroup{{option.id}}">{{option.text}}</label>
</div>
这个设置的问题是,这样我只保存按钮的值,而我也想保存它的标签。我以后真的需要它。
我正在寻找一种方法来做这样的事情
<input type="radio" model="data.modelObject" ng-value="val:option.id, text:option.text"/>
答案 0 :(得分:5)
您可以将对象作为ng-value
中的值:
<div ng-app>
<input type="radio" ng-model="modelObject" ng-value="{val:1, text:'text'}"/>
<p>>{{modelObject|json}}<</p>
</div>
ng-value
中的值也可以是动态的,也可以是每个请求:
<div ng-app ng-init="opt={id: 1, text: 'some text'}">
<input type="radio" ng-model="modelObject" ng-value="{val:opt.id, text:opt.text}"/>
<p>>{{modelObject|json}}<</p>
</div>
答案 1 :(得分:1)
您可以使用ng-value="option"
:
<input type="radio" model="data.modelObject" ng-value="option"/>
当您需要id
时,可以从$scope.option.id
获得该text
,当您需要$scope.option.text
时,可以从{{1}}访问它。检查我的回答here。这适合你的情况吗?