Knockout.js 逐个单击按钮从ObservalArray加载数据
我刚刚遇到了一个很好的knockout.js示例代码,我正在学习。所以我很想了解代码流。当我试着阅读代码时,我坚持去理解一个特定的领域。这里是jsFiddle链接,任何人都可以从这里看到完整的代码 单击“下一步”或“上一步”按钮时,这两个函数将从这两个例程调用Knockout.js 逐个单击按钮从ObservalArray加载数据,knockout.js,Knockout.js,我刚刚遇到了一个很好的knockout.js示例代码,我正在学习。所以我很想了解代码流。当我试着阅读代码时,我坚持去理解一个特定的领域。这里是jsFiddle链接,任何人都可以从这里看到完整的代码 单击“下一步”或“上一步”按钮时,这两个函数将从这两个例程调用prevQuestion&nextQuestion,questionIndex值将发生更改,相应的问题和答案集也将发生更改 我的问题是,问题和问题索引之间没有联系,所以我想知道问题索引什么时候发生变化,那么问题集是如何变化的 请帮助我理解当
prevQuestion&nextQuestion
,questionIndex
值将发生更改,相应的问题和答案集也将发生更改
我的问题是,问题和问题索引
之间没有联系,所以我想知道问题索引
什么时候发生变化,那么问题集是如何变化的
请帮助我理解当我们点击下一步或上一步按钮时,新的或旧的问题集是如何加载的
谢谢问题不会改变,只有当前问题会改变,因为它是一个值
它取决于
questionIndex
,所以每次questionIndex
被更改时currentQuestion
都会被重新计算。老实说,我只是不理解流程。如果可能的话,请指导我当用户单击“下一步”和“上一步”按钮时如何加载问答。thanks@Thomas,要了解它是如何基于上述答案工作的,请阅读knockoutjs中的观察值和计算机观察值。
//this two area now clear
this.currentQuestion = ko.computed(function(){
return self.questions()[self.questionIndex()];
});
this.nextQuestion = function(){
var questionIndex = self.questionIndex();
if(self.questions().length - 1 > questionIndex){
self.questionIndex(questionIndex + 1);
}
};
this.prevQuestion = function(){
var questionIndex = self.questionIndex();
if(questionIndex > 0){
self.questionIndex(questionIndex - 1);
}
};
this.currentQuestion = ko.computed(function(){
return self.questions()[self.questionIndex()];
});