У меня есть два списка, связанных с ui-sortable. Моя проблема: если элемент правого списка (rightModel) имеет класс «sorted-list - unsortable», я хочу предотвратить выпадение в левом списке, но продолжать опускаться в исходном списке. Я пробовал с ui.sender.sortable, но появляется следующее:
TypeError: ui.sender is null
И я действительно не понимаю, как это сделать. Это страница html с двумя списками:
<div class="sortable-dual-list">
<div class="row">
<div class="col-lg-6">
<h4 class="text-left">{{ $ctrl.leftTitle | translate}}</h4>
<div class="grid-container grid-container-edit">
<div class="p-grid-row connector sortable-list" ui-sortable="$ctrl.sortableOptions" ng-model="$ctrl.leftModel" >
<div ng-repeat="company in $ctrl.leftModel">
<p>{{company.businessName}}</p>
</div>
</div>
</div>
</div>
<div class="col-lg-6">
<h4 class="text-left">{{ $ctrl.rightTitle | translate}} <label ng-if="$ctrl.required" class="mandatory"> (*)</label>
</h4>
<div class="grid-container grid-container-edit">
<div class="p-grid-row connector sorted-list" ui-sortable="$ctrl.sortableOptions" ng-model="$ctrl.rightModel">
<div class="p-row" ng-class="{'sorted-list--unsortable': company.industryValue === 'ACTIVE'}" ng-repeat="company in $ctrl.rightModel">
<p>{{company.businessName}} <span ng-if="$first">
(default)
</span></p>
</div>
</div>
</div>
</div>
</div>
</div>
И это варианты сортировки:
public sortableOptions = {
connectWith: '.connector',
disabled: false,
stop: function(ev, ui) {
if(ui.item.hasClass("sorted-list--unsortable")){
ui.sender.sortable('cancel');
}
},
};