2015-09-14 5 views
2

Я использую ng-sortable для функции изменения порядка элементов списка. список, над которым я намерен применить нг-сортировкой является:ТипError: Не удается прочитать свойство '0' undefined - ng-Sortable (AngularJs)

List B : [object Object],[object Object],[object Object]

Example

Ниже мой код:

HTML -

<div data-as-sortable-item-handle> 
    <!-- <div class="list-group-item"> --> 
     {{$index + 1}}{{user.Name}} <input ng-click="ctrl.selectB(user.id)" name="ctrl.selectedB[]" value="{{user.id}}" ng-checked="ctrl.selectedB.indexOf(user.id) > -1" 
           type="checkbox" class="pull-right"> 
<!-- </div> --> 
</div> 

</li> 
</ul> 

контроллер -

$scope.dragControlListeners = { 
         accept: function (sourceItemHandleScope, destSortableScope) 
         {return sourceItemHandleScope.itemScope.sortableScope.$id === destSortableScope.$id;}, 
         itemMoved: function (event) { 
          //Do what you want }, 
         }, 
         orderChanged: function(event) { 
          //Do what you want}, 
         } 
             }; 

Но я получаю сообщение об ошибке:

TypeError: Cannot read property '0' of undefined

TypeError: Cannot read property '1' of undefined

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

Получение ошибки -

Uncaught TypeError: Cannot read property 'splice' of undefined

ответ

6

У вас есть больше кода, чтобы показать нам? Имел такое же сообщение об ошибке сегодня и исправил его, установив ng-model в тот же список, что и ng-repeat.

<div as-sortable="dragControlListeners" ng-model="foo"> 
 
    <div ng-repeat="bar in foo"> 
 
    <div as-sortable-item class="as-sortable-item"> 
 
     Lorum ipsum 
 
     <div as-sortable-item-handle class="as-sortable-item-handle">Drag</div> 
 
    </div> 
 
    </div> 
 
</div>

+0

Хорошо! Попробуем это – Learner

+0

Но еще одна альтернативная и лучшая библиотека, которую я нашел для выполнения этой операции перетаскивания, - угловые дендлисты (https://github.com/marceljuenemann/angular-drag-and-drop-lists). Попробуйте это! – Learner