我遇到了这个保存功能的问题。
注释//←this does not
的行不起作用,但注释//←this one works
的行正常工作。在ajax回调中调用它有什么问题吗?我怎样才能让它发挥作用?
save= function(){
var self=this;
function f(index, row){
jsRow=ko.toJS(row)
if (jsRow.isChanged) {
var value= jsRow.value;
self.commitRowToUndo(row); //←this one works
$.ajax({
url: "db/"+value._id,
type: "put",
data: JSON.stringify(value),
success: function(responce_json) {
self.commitRowToUndo(row); //←this does not
…
var row= something;
}
});
}
}
$.each(self.table.rows(), f);
}
save
绑定了一个按钮。
答案 0 :(得分:2)
我找到了它:因为我宣布后一行,行变得未定义。我没有意识到定义变量具有反向活动范围。 (我将从现在开始在Javascript中的函数/作用域顶部定义变量)。