나중에 가서 : http://plnkr.co/edit/xAgm0ny6yAB8spd5Oiai?p=preview
당신은 아마이 간단하고 변경 있는지 확인하기 위해 숨겨진 필드에 원래 값을 저장하고이를 줄일 수있는 하나 개의 업데이트를 반복 당 버튼, 그러나 이것은 시작되는!
<div ng-repeat="(k,v) in myCtrl.myObject">
<input type="hidden" ng-model="k">
<div>
Key: <input ng-model="newKey" ng-value="k" />
<button ng-click="myCtrl.updateKey(k, newKey, v)">Update</button>
</div>
<div>
Value: <input ng-model="v" />
<button ng-click="myCtrl.updateValue(k,v)">Update</button>
</div>
<hr />
</div>
과 기능 :
vm.updateKey = function(k, newKey, v) {
// newKey will be undefined if nothing changed
// Check to see if it changed
if(k != newKey && newKey !== undefined) {
// If it's empty... delete it
if(newKey != '') {
vm.myObject[newKey] = v;
}
delete vm.myObject[k];
}
};
vm.updateValue = function(k, v) {
vm.myObject[k] = v;
};
당신이 고려해야 할 몇 가지 다른 고려 사항은 다음과 같습니다 무엇인지 서로 새로운 속성 이름이 충돌하면? 또한 위의 내 의견은 undefined
으로 설정하는 것으로 충분하지 않습니다. delete
키워드를 사용해야합니다. 그렇지 않으면 ng-repeat가 제대로 업데이트되지 않습니다.
나는 그것이 가능하다고 생각한다. 나는'updateKey (k, v)'와'updateValue (k, v)'두 가지 메소드를 생성 할 것이다. updateKey에서, 당신은'cluster.properties [k] = undefined'를 설정하고 v를 새로운'cluster.properties [k]'로 옮길 필요가 있습니다. 이것이 내가 처음 생각할 때 마음에 떠오르는 것입니다 ... 흥미로운 개념입니다. 나는 이것을 시험해보고 싶어! – Zach