将Array转换为对象Angularjs

时间:2014-10-28 10:12:04

标签: arrays angularjs object angularjs-ng-repeat angularjs-ng-model

我有一个类似var names=["price","quality","service"]的数组,我必须将该数组转换为像names=[{"name":"price", "value":"1.3"},{"name":"quality","value":"3"},{"name":"service","value":"3.4"}]这样的对象。每个时间数组值都不同。我需要使用ng-repeat之类的

来构建具有该值的输入字段
<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"}]

ThanQ!

1 个答案:

答案 0 :(得分: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>