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