Я хочу перекрыть свойство объекта. Кроме того, должно быть двустороннее связывание данных, так что любое изменение также изменит объект.AngularJS: Итерация над свойствами объекта и привязкой в двух направлениях
Оба ключа и значение свойства объекта могут быть изменены из пользовательского интерфейса и должны отражаться в структуре объекта.
Я могу сделать это за ценности объекта с ng-model="contents[index]"
, но как это сделать с помощью ключа свойства объекта, например, интерфейс в объекте изменится, если я изменю его в пользовательском интерфейсе.
$scope.contents = {
"interface": "GigabitEthernet",
"interfaceNumber": "1",
"BGPneighborIp": "00.0.112.499",
"BGPremoteAs_[1]": "701",
"BGPneighborIp_[2]": "8.3.112.170",
"BGPremoteAs_[2]": "702"
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<tbody>
<tr ng-repeat="(index, p1) in contents">
<td>
<input class="form-control" type="text" ng-model="index">
</td>
<td>
<input class="form-control" type="text" ng-model="contents[index]">
</td>
</tr>
</tbody>
Может быть, [это SO] (http://stackoverflow.com/questions/23643592/how-to -bind-angularjs-objects-to-their-keys-and-values). Консенсуса в том, что вы не можете. Я бы предложил изменить вашу структуру данных, поэтому изменение ключа объекта не требуется. – ste2425
@ ste2425 - У меня есть структура JSON. согласно дизайну. Мне нужно зациклиться на разных объектах и показать его в пользовательском интерфейсе. ключ и значения могут быть изменены из пользовательского интерфейса и должны отражать JSON позади. Для изменения значений нет сохранения или отправки, поэтому требуется двусторонняя привязка. преобразование объекта в массив потребует дополнительных усилий, чтобы снова объединить его в JSON. – Mudit