Javascript 如何获取knockoutjs可观测数组的下一个元素?
我需要为可观察数组的数组元素实现2个按钮(下一个、上一个)。是否有任何默认函数或方法在数组元素之间导航 例: 单击next按钮时,它应该返回下一个对象(如ko.utils.arrayFirst()返回给定对象) 有什么帮助吗?没有,没有“默认”的方法 RoyJ的评论是关于如何自己做的。让我把它变成一个工作示例: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
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'}]);