2017-02-13 110 views
-1

我有一個列表,其中包含具有排序順序和國家/地區代碼屬性的對象。您可以更改排序順序,現在更改排序順序應該按照新的排序順序重新排列列表項目。例如:Angular Js - 重新排列列表項目

Country Code | Sort Order 
AUS   1 
UK    2 
IND   3 
USA   4 
RUS   5 

我需要一個解決方案,數據庫的變化應該是最小的:作爲

Country Code | Sort Order 
AUS   1 
IND   2 
USA   3 
UK    4 
RUS   5 

現在改變那種英國爲2應該給結果。由於此列表將通過角度控制器發送到C#web Api控制器進行保存。

+1

請在您的問題中添加更多上下文。詳細說明您希望最小化的預期數據庫更改。 – DevCod

+0

好的,讓我解釋一下。我只改變了一個值,即。英國的排序順序從4改爲2,其他排序順序都增加到了美國,但RUS'保持不變,因此4變爲2,排序2和3分別變爲3和4。如果我跟蹤scope.changes角度,那麼我會得到三個變化ie.UK,IND和美國。是否有任何解決辦法或最低限度的方法,我只需要更新英國的記錄。 –

回答

0

由於沒有提供代碼,我假定您正在嘗試處理的UI代碼和工作流程。您可以使用下面的代碼來選擇性地跟蹤對模型的更改。

HTML: 
<html> 
     <input ng-change="change(ele, '{{ele.sortOrder}}')" type="number" ng-model="ele.sortOrder"></input> 
</html> 

JavaScript: 
$scope.change = function(NewObject, OldSortOrder) { 
$scope.NewObject = NewObject; 
$scope.NewSortOrder = NewObject.sortOrder; 
$scope.OldSortOrder = OldSortOrder; 

//Make a call to the C# web Api now with the changes you want to update in the backend. 
//$http.post('api/..'); 

} 

的完整代碼保持在https://plnkr.co/edit/LdhpZr?p=preview

另一個這樣的查詢可以在ng-change get new value and original value找到。