我有一个简单的组件,允许输入一个问题和多个答案。答案可以通过点击向上/向下按钮重新排序。我注意到,当答案被重新排序时,正确/不正确的选择值变成了,我不太明白为什么。
以下是我的move up/down方法:
self.moveUp = answer => {
var i = question.answers.indexOf(answer);
if (i >= 1) {
var array = question.answers();
question.answers.splice(i-1, 2, array[i], array[i-1]);
}
}
self.moveDown = answer => {
var i = question.answers.indexOf(answer);
if (i < question.answers().length) {
var array = question.answers();
question.answers.splice(i, 2, array[i+1], array[i]);
}
}
这里有一个小提琴展示了这个问题的实际情况:https://jsfiddle.net/gurubob/k8s3dyvc/4/
我很确定这个问题是由单选按钮本身和绑定引起的,因为如果我把它改为使用文本输入,这样我就可以看到值,那么它就可以正常工作了。你可能也注意到了“0”和“1”对于正确值的尴尬用法(而不是更明显的true/false)-我现在不想解决这个问题,但是如果它造成了足够的痛苦,并且没有好的解决方法,那么我会解决的。
思想欢迎。
鲍勃
1条答案
按热度按时间5tmbdcev1#
在向上移动和向下移动两种方法中,我都更新了数组操作逻辑,以正确地更新数组。除了使用splic,我还使用了rеmovе和splic,以Knockout.Js可以跟踪的方式修改了数组。以下是更新后的功能: