从这个问题,我知道如何移动项目:
moveUp: function(category) {
var i = categories.indexOf(category);
if (i >= 1) {
var array = categories();
categories.splice(i-1, 2, array[i], array[i-1]);
}
}
Run Code Online (Sandbox Code Playgroud)
移动物品的等价物是什么?
继之前后如何更新数组的顺序.我遵循迈克尔·贝斯特的建议,并使用splice()修改按钮单击时我的数组的顺序
self.moveup = function (itemIndex) {
var i = self.itemList.indexOf(itemIndex);
if(i >= 1){
var array = self.itemList();
self.itemList.splice(i-1, 2, array[i], array[i-1]);
}
Run Code Online (Sandbox Code Playgroud)
我遇到麻烦的地方是增加数组中的项目.从阅读Array Splice的用法第一个参数指示了向上移动的位置我认为会是这样i+1,值2表示阵列中有多少项会改变所以没有变化那么我想的范围就是当我增加位置时,所选项目数组[i]和结尾将是[i + 1].
self.itemList.splice(i+1, 2, array[i], array[i+1]);
Run Code Online (Sandbox Code Playgroud)
在附加的提琴手中,您可以看到值增加,但项目实际上并没有改变顺序,只有当您按下向下按钮时它们才会复制.我希望结果与调用moveUp时的结果相同.
我很感激我在这里缺少的任何指示.http://jsfiddle.net/rlcrews/SCWmk/5/
-干杯