Knockout将observableArray项目向下移动

时间:2014-03-12 10:05:09

标签: javascript arrays knockout.js

this question,我知道如何移动项目:

moveUp: function(category) {
    var i = categories.indexOf(category);
    if (i >= 1) {
        var array = categories();
        categories.splice(i-1, 2, array[i], array[i-1]);
    }
}

将项目向下移动的等价物是什么?

1 个答案:

答案 0 :(得分:8)

在此解决方案中,我从index位置删除两个项目,然后再次插入它们(第一个 - 下一个项目,第二个 - 移动项目):

moveDown = function(number) {
    var i = self.numbers().indexOf(number);
    if (i < self.numbers().length - 1) {
        var rawNumbers = self.numbers();
        self.numbers.splice(i, 2, rawNumbers[i + 1], rawNumbers[i]);
    }
}

Demo