2

我有一个类似的数组var names=["price","quality","service"],我必须将该数组转换为类似的对象names=[{"name":"price", "value":"1.3"},{"name":"quality","value":"3"},{"name":"service","value":"3.4"}]。每次数组值都不同。ng-repeat我需要使用like来构建具有该值的输入字段

<div ng-repeat="n in names">
      <input name="rating" ng-model="n" value="0"/>
</div>

当用户提交表单时,我如何将值作为对象获取。谁能帮我。

更新

我需要这样的json:::

names=[{"name":"price", "value":"1.3"},{"name":"quality","value":"3"},{"name":"service","value":"3.4"}]

谢谢!

4

1 回答 1

1

声明你的模型对象

$scope.item={};

然后就做

<div ng-repeat="n in names">
      <input name="rating" ng-model="item[n]" value="0"/>
</div>

数据将被收集到item对象中。

更新:要在这样的模型中获得这样的结果,我们必须在将其绑定到视图之前创建它。假设names控制器中的所有项目都执行:

var items=names.map(function(name){ return { name:name,value:null}; })

这将创建一个您需要的格式的数组。

现在将视图绑定到:

<div ng-repeat="item in items">
          <input name="rating" ng-model="item.value" value="0"/>
    </div>
于 2014-10-28T10:13:56.553 回答