Angular 排序和计数,德拉古拉

Angular Sorting and counting, Dragula

我有以下场景:

JSON 对象数组通过 angular ajax 获取并通过 ng-repeat 显示为列表。 该列表按对象 属性 "index" 排序,它被设置为相应列表项的默认输入值。

用户可以更改输入值。 按下按钮后,列表会重新绘制,并按更新的输入值排序。 现在应该有一个计数器,++ 每当列表项改变位置时。

到目前为止,我设法计算了所有具有更新值的列表项。 如何为其他更改位置的列表项注册位置更改?

例如:#3改变位置到#1,那么#1和#2也改变位置。

其次,使用 Dragula,列表项现在可以拖动。 列表项被拖动后如何重新排序?

我也很累Angular德拉古拉没有成功

这是我在 github 上的代码。

感谢您的帮助!

我遇到了类似的问题。您需要一种获取 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;
  }

};