Использование сортировки jQuery для перестановки строк таблицы мешает Angular orderBy

0

Первоначально у меня была таблица в угловом приложении, которое будет использовать orderBy для сортировки своих строк на основе значений в определенном столбце. Если вы щелкнете заголовок таблицы, это изменит аргументы orderBy и применит список, используя значения в этом столбце в качестве критериев.

Теперь я пытаюсь использовать jQuery, чтобы позволить пользователю вручную изменить порядок строк в таблице. Однако, когда они щелкают по заголовку таблицы в таблице после его перегруппировки, строки будут сортироваться некорректно. Я предполагаю, что что-то не обновляется на угловой стороне, которую он не может видеть, но я не могу найти ничего определенного на нем прямо сейчас.

$('#game-table tbody').sortable({
   opacity: 0.5
});

<table id='game-table'>
  <thead>
       <th>
         <a class="sortable-link" ng-click="sortType = 'title; sortReverse = !sortReverse">  
         Titles
         </a>
       </th>
  </thead>
  <tbody>
       <tr class="game" ng-repeat="game in data | orderBy:sortType:sortReverse" style="cursor:move;">

1 ответ

0

Основное различие между jQuery и Angular заключается в том, что jQuery работает на DOM, тогда как Angular работает с необработанными данными. Когда jQuery UI Sortable обновляет строки таблицы (через взаимодействие с пользователем), Angular ничего не знает об этом. Это нарушает связь между Угловыми данными и представлением DOM этих данных.

На GitHub есть директива Angular UI Sortable, которую вы можете найти полезной. Целью этой директивы является использование функции сортировки JQuery UI Sortable при отражении тех же изменений в угловых данных.

  • 0
    Спасибо! Я действительно ценил изучение, почему это происходит также.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню