내가 만든이 무한 루프를 디버깅하는 데 어려움을 겪고 있습니다. Knockout.js에서는 두 요소의 변경 이벤트를 data-bind="event:{change:save_data}"
마크 업을 사용하여 바인딩했습니다. 그런 다음 save_data
함수에서 서버에 Ajax PUT을 실행했습니다.구독 및 AJAX 데이터 전송 후 녹아웃 최대 호출 스택
var ViewModel = function(config) {
var self = this;
// initial call to mapping to create the object properties
ko.mapping.fromJS(config, {}, self);
self.save_data = function() {
$('#ajax-console').append('<p>Saving...</p>');
$.ajax({
url: '/echo/json/',
data: ko.toJS(self),
type:'put',
success: function(data) {
},
dataType: 'json'
});
}
};
이 실행하고 입력 또는 체크 박스 중 하나를 변경 크롬 나에게 다음과 같은 오류를 제공합니다 : RangeError: Maximum call stack size exceeded
.
내가 뭘 잘못하고 있니? AJAX 호출에서 필드의 값 중 하나가 변경되고있는 것 같습니다. 해결 방법은 AJAX 호출이 이미 경로에 있고 호출하지 않는지 감지하는 것입니다.하지만 무슨 일이 일어나는지 알고 싶습니다.
깨진 예 : http://jsfiddle.net/btV9t/10/
근무 예 : 모든 http://jsfiddle.net/btV9t/8/
덕분에 여기
내 바이올린입니다.
감사합니다, 나는 내 응용 프로그램에 있음을 변경합니다. 정말 이것이 _answer_이라고 말할 수는 없지만 좋은 메모입니다. – StingeyB
@StingeyB 아직 다른 문제가 있습니까? 바이올린은 그 변화와 함께 일하고 있습니다. 그래서 당신이 다른 것들을 알고 있는지 모르겠습니다. 어떻게 이것이 답이 아닌가? – Tyrsius