Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取knockoutjs可观测数组的下一个元素?_Javascript_Jquery_Arrays_Knockout.js_Observable - Fatal编程技术网

Javascript 如何获取knockoutjs可观测数组的下一个元素?

Javascript 如何获取knockoutjs可观测数组的下一个元素?,javascript,jquery,arrays,knockout.js,observable,Javascript,Jquery,Arrays,Knockout.js,Observable,我需要为可观察数组的数组元素实现2个按钮(下一个、上一个)。是否有任何默认函数或方法在数组元素之间导航 例: 单击next按钮时,它应该返回下一个对象(如ko.utils.arrayFirst()返回给定对象) 有什么帮助吗?没有,没有“默认”的方法 RoyJ的评论是关于如何自己做的。让我把它变成一个工作示例: var ViewModel=function(){ var self=这个; self.mainArray=ko.observearray([{id:1,名称:'one'},{id:2

我需要为可观察数组的数组元素实现2个按钮(下一个、上一个)。是否有任何默认函数或方法在数组元素之间导航

例:

单击next按钮时,它应该返回下一个对象(如ko.utils.arrayFirst()返回给定对象)

有什么帮助吗?

没有,没有“默认”的方法

RoyJ的评论是关于如何自己做的。让我把它变成一个工作示例:

var ViewModel=function(){
var self=这个;
self.mainArray=ko.observearray([{id:1,名称:'one'},{id:2,名称:'two'}]);
var _currentItemIndex=ko.可观察(0);
功能导航(nrOfSpots){
如果(_currentItemIndex()+nrOfSpots>=self.mainArray().length){return;}
如果(_currentItemIndex()+nrOfSpots<0){return;}
_currentItemIndex(_currentItemIndex()+nrOfSpots);
}
self.next=function(){navigate(1);};
self.prev=function(){navigate(-1);};
self.currentItem=ko.computed(函数(){
返回self.mainArray()[\u currentItemIndex()];
});
};
应用绑定(新的ViewModel())

当前项目:

以前的
接下来
创建一个可观测对象,该对象将索引保存到数组中。下一步递增,上一步递减。您可以在阵列的末端缠绕或保持稳定。如果您正在进行类似于
ko.utils.arrayFirst
的匹配,并且希望next和prev查找匹配项,那么它会变得更加棘手。
var mainArray = ko.observableArray([{id:1,name:'one'},{id:2,name:'two'}]);