【问题标题】:Angular Js - Reordering List ItemsAngular Js - 重新排序列表项
【发布时间】:2017-02-13 15:54:26
【问题描述】:

我有一个列表,其中包含具有排序顺序和国家代码属性的对象。您可以更改排序顺序,现在更改排序顺序应该按照新的排序顺序重新排序列表项。例如:

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

现在将 UK 类型更改为 2 应给出结果:

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

我需要一个数据库更改最少的解决方案。由于此列表将通过角度控制器发送到 C# Web Api 控制器进行保存。

【问题讨论】:

  • 请为您的问题添加更多上下文。详细说明您希望最小化的预期数据库更改。
  • 好的,让我解释一下。我只改变了一个值,即。将英国的排序顺序从 4 更改为 2,所有其他排序顺序都增加,直到美国,但 RUS 保持不变,因此 4 变为 2,排序顺序 2 和 3 分别变为 3 和 4。如果我跟踪角度的 scope.changes,那么我将获得三个变化,即 UK、IND 和 USA。是否有任何解决方法或最小的方法,我只需要更新英国的记录。

标签: angularjs asp.net-web-api


【解决方案1】:

由于没有提供代码,我假设您正在尝试处理的 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 找到另一个类似的查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多