Определить, когда пользователь изменил порядок сортируемой таблицы - PullRequest
0 голосов
/ 12 марта 2019

В настоящее время я пытаюсь выяснить, есть ли способ определить, когда пользователь изменяет порядок сортируемой таблицы.У меня есть таблица с кодом

<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>

, где таблица сортируется с помощью $('tbody').sortable() во внешнем файле JavaScript.Я знаю о вызове $scope.$apply(function () {}), но не могу найти подходящего места для его использования. Большинство моих функций связано с $scope, и я не могу использовать его в этих функциях.

РЕДАКТИРОВАТЬ: Я не использую сортируемый для фактической сортировки элементов, я использую его, чтобы пользователь мог изменить порядок строк, щелкая и перетаскивая их.

1 Ответ

0 голосов
/ 12 марта 2019

Когда вы делаете таблицу сортируемой, вы можете определить обратный вызов при изменении таблицы. Например, в вашем случае,

$("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})
  }
});
...