2015-12-29 2 views
1

У меня есть следующий сценарий:Угловой сортировка и подсчет голоса, Dragula

массив JSON объекта А получает с угловым получением файла AJAX и отображается в виде списка с нг-повтором. Список сортируется по объекту "index", который устанавливается как значение по умолчанию для соответствующего элемента списка.

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

Мне до сих пор удалось подсчитать все элементы списка с обновленными значениями. Как зарегистрировать изменения позиции для других элементов списка, которые меняют позицию?

Например: # 3 изменяет положение на # 1, затем # 1 и # 2 также меняют положение.

Во-вторых, используя Dragula, элементы списка теперь перетаскиваются. Как я могу прибегнуть к списку после перетаскивания элементов списка?

Я также устал Угловая Dragula без успеха.

вот мой код на github.

Благодарим за помощь!

ответ

0

У меня была аналогичная проблема. Вам нужен способ индексирования DOM и обновления объекта JavaScript для соответствия. Я зациклился на элементах DOM, получил их значения индекса, нашел соответствующий элемент в объекте данных, а затем установил значение индекса в объекте в значение индекса DOM. Надеюсь, этот пример помогает кому-то.

var updateIndexes = function() { 

    // this gets the index of any DOM element, like jQuery index() 
    function getIndex(el) { 
    for (var i = 0; el = el.previousElementSibling; i++); 
    return i; 
    } 

    // loop through the list DOM elements 
    for (var i = 0; i < dataArray.length; i++) { 
    var dataId = dataArray[i].id; 
    var domIndex = getIndex(document.getElementById(dataId)); 
    dataArray[i].index= domIndex; 
    } 

};