2013-07-29 2 views
3

Backbone.Validation 플러그인을 사용하고 있습니다. 서버 측에서 수행되는 고유성 검사를 수행하는 모델이 있습니다. backbone.validation을 사용하여 오류를 인식하고 반환 된 오류 메시지를 표시하도록 설정 한 콜백을 실행하는 방법은 무엇입니까?backbone.validation 플러그인 및 서버 측 유효성 확인

this.model.save() 
    .done(function(model) { 
    App.currentRouter.navigate('#/', {trigger: true}); 
    }) 
    .fail(function(response) { 
    alert('errors: ' + JSON.stringify(response)); 
    // ? have backbone.validation handle errors ? 
    }); 

미리 감사드립니다.

답변

4

이렇게하는 것이 가장 좋은 방법인지 확신 할 수 없지만 작동하는 해결책을 찾았습니다.

this.model.save() 
    .done(function(model, response, options) { 
     App.protocols.add(model); 
     App.currentRouter.navigate('#/', {trigger: true}); 
    }) 
    .fail(function(response, xhr, options) { 
     var errors = JSON.parse(response.responseText)['errors']; 

     _.each(errors, function(val, attr){ 
     Backbone.Validation.callbacks.invalid(self, attr, val, 'name'); 
     }); 

     self.model.trigger('validated', false, self.model, errors); 
     self.model.trigger('validated:invalid', self.model, errors); 
    });