检测用户何时更改了可排序表的顺序

时间:2019-03-12 13:28:19

标签: javascript html angularjs angularjs-ng-repeat

我目前正在尝试查看是否有一种方法可以检测用户何时更改可排序表的顺序。我已经用代码

设置了表格
<table class="table table-striped table-hover" id="captureTable">
    <thead>
        <tr>
            <th>Index</th>
            <th>elem1</th>
            <th>elem2</th>
            <th>elem3</th>
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="x in capture.railLines track by x.ASSET_PK" ng-click="capture.selectLine(x.ASSET_PK)">
            <td>{{$index + 1}}</td>
            <td>{{x.elem1}}</td>
            <td>{{x.elem2}}</td>
            <td>{{x.elem3}}</td>
            <td><a ng-click="capture.deleteLine(x.elem1)" href="javascript:void(0);">⛔️</a></td>
        </tr>
    </tbody>
</table>

其中的表可以使用外部JavaScript文件中的$('tbody').sortable()进行排序。我知道$scope.$apply(function () {})的调用,但是似乎找不到在其中使用它的好地方。我的大多数函数都与$scope绑定,因此不能在这些函数中使用它

编辑:我不是在使用sortable对元素进行实际排序,而是在使用它,以便用户可以通过单击并拖动来重新排列行。

1 个答案:

答案 0 :(得分:0)

使表可排序时,可以在更改表时定义回调。例如,您的情况

$("tbody").sortable({
  change: function(event, ui) {
    //Do something, probably with these properties:
    //ui.item (the jQuery object of the item being dragged)
    //ui.position (the new position of the item as {top, left})
    //ui.originalPosition (the original position of the item as {top, left})
  }
});