ajax回电没有使用knockout.js

时间:2017-02-17 02:38:47

标签: ajax

我遇到了这个保存功能的问题。 注释//←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绑定了一个按钮。

1 个答案:

答案 0 :(得分:2)

我找到了它:因为我宣布后一行,行变得未定义。我没有意识到定义变量具有反向活动范围。 (我将从现在开始在Javascript中的函数/作用域顶部定义变量)。