如何使用对象作为单选按钮的ng值

How to use an object as ng-value of a radio button?

本文关键字:ng 单选按钮 何使用 对象      更新时间:2023-09-26

是否有办法使用一个对象的ng值的单选按钮?

假设你有一个单选按钮,它的ng-model是一个对象,像这样:

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"/>

您可以使用一个对象作为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>

更新示例fiddle

您可以使用ng-value="option":

<input type="radio" model="data.modelObject" ng-value="option"/>

当您需要id时,您可以从$scope.option.id获得它,当您需要text时,您可以从$scope.option.text访问它。点击这里查看我的答案。这对你的案子有用吗?