2017-02-17 1 views
1

이 저장 기능에 문제가 있습니다. 주석이있는 행 //←this does not이 작동하지 않지만 주석이있는 행 //←this one works이 작동 중입니다. 아약스 콜백에서 호출하는 데 문제가 있습니까? 어떻게 작동시킬 수 있습니까? ajax 콜백이 knockout.js와 작동하지 않습니다.

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

개발자 도구 콘솔을 확인 했습니까? – Steve

답변

2

나는 그것을 발견했다 : 나는 후자의 행을 선언했기 때문에 행이 정의되지 않았다. 나는 변수를 정의하는 것이 레트로 액티브 범위를 가지고 있다는 것을 깨닫지 못했다. (Javascript에서 함수/스코프의 맨 위에 변수를 정의 할 것입니다.)

관련 문제