我正在尝试实现一个对话框,用于与用户确认他们是否要继续执行操作。
deleteItem(index: number): void {
let response = window.confirm("Are you sure?");
if (response) {
// delete item code
this.item.splice(index,1);
console.log("A");
} else {
console.log("B");
}
}
当我单击deleteItem按钮触发对话时,它会删除该项目,但会打印正确的console.log()
字符串。有人能帮我理解为什么会发生这种情况以及如何纠正吗?
你确定吗"好的"=>删除该项目并记录";A";在控制台中。
你确定吗"取消"=>删除该项目并记录";B";在控制台中。
未更改代码:
deleteItem(index: number): void {
let response = window.confirm("Are you sure?");
if (response) {
// delete feedback in students' boolean feedback arrays
for (var i = 0; i < this.csvRecords.length; i++) {
if (this.students[i].feedbackBoolean[index] == true) {
// add deduction value to student grade before delete
var newGrade = parseFloat(this.students[i].grade) + this.feedback[index].deduction
this.students[i].grade = newGrade.toString();
}
this.students[i].feedbackBoolean.splice(index,1);
}
// remove 1 element at index
this.feedback.splice(index,1);
console.log("A");
} else {
console.log("B");
}
}
我添加了未更改的代码,看看是否有什么可以引发我可能忽略的这种行为。提前谢谢。
请原谅我使用javascript
来实现您的示例,但我发现似乎没有问题。你能提供一个可重复的例子吗?
const items = [0, 1, 2, 3, 4];
const deleteItem = (index) => {
let response = window.confirm("Are you sure?");
if (response) {
// delete item code
items.splice(index, 1);
console.log("A");
} else {
console.log("B");
}
}
deleteItem(0);
console.log(items);