我有一个类似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!
答案 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>