AngularJS:带键值的ng-repeat - 更新对象

Ser*_*pov 10 model-binding angularjs angularjs-ng-repeat

我正在渲染键:使用ng-repeat的值对象数组,如下所示:

<div ng-controller="mainCtrl">    
  <div ng-repeat="record in records">
    <div ng-repeat="(key, value) in record">
        <input ng-model="key" />: <input ng-model="value" />
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

var mainCtrl = function($scope){
$scope.records = [
        {'key1':'val1'},
        {'key2':'val2'}
        ];
}
Run Code Online (Sandbox Code Playgroud)

问题是无法通过输入标签更新键和值.由于某种原因,在使用ng-repeat迭代(键,值)之后,它成为单向绑定.

小提琴: http ://jsfiddle.net/BSbqU/1/

我怎样才能使它成双向绑定?或者我应该以不同的方式处理此问题然后嵌套ng-repeat?

Jas*_*son 7

<div ng-controller="mainCtrl">    
<div ng-repeat="record in records">

        <input ng-model="record.name" />: <input ng-model="record.value" />
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

和JS:

var myApp = angular.module('myApp', []);

var mainCtrl = function($scope){
$scope.records = [
{'name':'key1','value':'val1'},
{'name':'key2', 'value':'val2'}
        ];
}
Run Code Online (Sandbox Code Playgroud)


小智 6

此选项适用于对象:

<div ng-controller="mainCtrl">    
  <div ng-repeat="record in records">
    <div ng-repeat="(key, value) in record">
        <input ng-model="key" />: <input ng-model="record[key]" />
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

不是很棒,但它确实有效.