2013-01-16 2 views
1

내 프로젝트에서 서버가 보낸 데이터가 변경되었습니다. 작은 변경, 일부 foo 속성 foobar되고,하지만이 혼란을 클라이언트 측면을 만들었습니다, 나는 그것을 모르고 있기 때문에. 오류가 발생한 곳을 파악하는 데는 오랜 시간이 걸렸습니다.backbone.js의 데이터 무결성

백본이 유효한 데이터를받지 못했다는 것을 알려줄 수있는 것이 있습니까 (기존 또는 계획 중)?

편집 : 좀 더 정확하게, 내가 생각하기에, 모델 정의 객체의 일종으로 BB에 피드를 제공하는 것입니다 : 필드 이름, 필드 길이, 필수 또는 선택 사항. 뭔가 일반.

+0

데이터가 서버에서 변경되어 클라이언트의 데이터가 오래되었다는 것을 의미합니까? 또는'fetch' 또는'update'가 어떤 필드 값을 변경했을 때 통지 받기를 원한다는 것을 의미합니까? – jevakallio

+0

보낸 json은 다릅니다. (다른 속성 이름) 백본이이를 알아 차리고 유효하지 않은 데이터가 있다고 말하고 싶습니다. – Olivvv

+0

[백본 유효성 검사 플러그인] (http://toddself.github.com/Backbone.Validator/)에 대한 주석을 작성하겠습니다. 주의 사항 : 아직 백본 0.99로 업데이트하지 않았습니다. – tkone

답변

1

모델에 validate method을 (를) 재정의하십시오. 기본적으로 백본에는 빈 구현이 있으며 앱을 기반으로 속성을 수동으로 확인할 수 있습니다.

유효성 검사는 새 모델 설정 또는 생성을 호출 할 때 백본에서 자동으로 호출됩니다. 오류가 있다면 다른 정의되지 않은 것을 제외하고

복귀를합니다 (문서에서) 값/객체를 아무것도 (정의)를 반환하지 :

사용하는 방법.

오류가 감지되면 모델은 변경되지 않습니다.

var Chapter = Backbone.Model.extend({ 
    validate: function(attrs, options) { 
    if (attrs.end < attrs.start) { 
     return "can't end before it starts"; 
    } 
    } 
}); 
+0

멋지다. 그래서 나는 그것이 구부려 져야하는 곳이라고 생각한다. 그러나 나는 모든 분야가 체계적으로 기술되어있는 일반적인 것을 찾고있다. – Olivvv