1

我有以下情况:

使用 angular ajax 获取 JSON 对象数组并使用 ng-repeat 显示为列表。该列表按对象属性“索引”排序,该属性设置为相应列表项的默认输入值。

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

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

例如:#3 将位置更改为#1,然后#1 和#2 也更改位置。

其次,使用 Dragula,列表项现在是可拖动的。列表项被拖动后,如何使用列表?

我也厌倦了Angular Dragula,但没有成功。

这是我在github上的代码。

感谢您的帮助!

4

1 回答 1

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;
  }

};
于 2016-09-14T16:09:26.197 回答