2013-11-15 87 views
4

在某个json文件中,数组中只存在一个对象。但是,该对象具有未知数量的属性。如何动态设置ng-model与对象属性对应

[{"red": 14, "green": 12, "orange": 1, "yellow": 11, "blue": 9}] 

此对象被称为“项目”。这是我的表格:

<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="15"/> 
    </div> 
    <input type="submit" ng-click="save()" /> 
</form> 
</div> 

当我点击提交的形式,然而,发送的数据始终是最初的输入设置数据:[{"red": 14, "green": 12, "orange": 1, "yellow": 11, "blue": 9}]

举个例子,如果我将所有输入到0,我如何得到它发送[{"red": 0, "green": 0, "orange": 0, "yellow": 0, "blue": 0}]

save()功能基本上由以下组成:

$http.put(url, $scope.items); 

回答

4

就像可变密钥中的JavaScript使用bracket notation在NG-模型作为member operator

<input type="range" ng-model="items[0][key]" min="0" max="15"/> 

演示:Fiddle

+0

作品,除了'item [0] [key]'应该只是'items [key]',因为'ng-repeat'已经在items [0]中指定了'(key,value)' – roscioli

+1

@rosciood这是使用的angularjs版本?小提琴似乎工作正常 –

+0

我使用1.1.1,这可能是我的结局的问题,但我只是很高兴它的工作原理。你是对的,你提供的jsfiddle确实可以正常工作。谢谢! – roscioli