2013-11-15 68 views
2

我想動態改變每個輸入標籤的ng-model名稱(在html輸入標籤中)。例如,如果我的JSON文件看起來像:動態改變html標籤中ng-model的名稱

[{cows: 0, pigs: 14, roosters: 2, horses: 23, goats: 21}] 

,我通過JSON對象使用NG-重複(「項目」)的屬性迭代,我應該把在NG-模型=「? ??」將特定輸入與特定對象屬性(動物)綁定?

<div ng-app="myApp" ng-controller="MainCtrl"> 
    <form class="idea item"> 
     <div ng-repeat="(key, value) in items[0]"> 
      <label>{{key}}</label> 
      <input type="range" value="{{value}}" min="0" max="4" ng-model="????" /> 
     </div> 
     <input type="submit" ng-click="save()" /> 
    </form> 
</div> 

如果我寫出來靜態不使用NG-重複,輸入看起來像:

<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].cows" /> 
<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].pigs" /> 
<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].roosters" /> 
<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].horses" /> 
<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].goats" /> 

不過,我想這是動態的,我不知道是什麼屬性名期望。

回答

3

只需使用關聯索引:

<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0][key]" /> 

換句話說,你可以隨時通過關聯數組訪問的變量。以下是等價的:

item[0].pigs 
item[0]['pigs'] 

你可以用它來你的優勢,因爲你知道你的中繼器key