2

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

<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!

+0

哪里的值来自何处? – 2014-10-28 10:14:05

+0

值来自数据库 – chandu 2014-10-28 10:30:56

回答

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> 
+0

嗨@Chandermani,我已经更新了这个问题。你能帮忙解决这个问题吗? – chandu 2014-10-29 04:31:54