2012-08-09 8 views
2

양식을 처리하는보기가 있습니다.백본 : 생성시 서버 응답 처리

var FormView = Backbone.View.extend({ 
    initialize : function(options){ 
     this.collection = new PlayerCollection({url:options.url}); 
     this.collection.bind('add', this.addPlayer); 
     this.collection.bind('reset', this.addAllPlayers); 
    }, 
    saveNewPlayer : function(event){ 

     this.collection.create({ 
     name : this.$form.find('input[name="name"]').val(), 
     }); 
    } 
}); 

(I이 예를 들어 필요하지 않은 몇 가지 코드를 ommited 한) :
이 양식은 저장 버튼을 클릭에 최대 발사 이벤트가 있습니다.

이 코드는 새 모델을 올바르게 저장하고 데이터를 서버로 보내고이 새 모델과 관련된보기를 작성합니다. 하지만 데이터를 게시 할 때 서버 응답을 처리하는 방법이 궁금합니다.
예를 들어, 서버가 데이터를 저장할 수 없거나 다른 종류의 오류가 발견되면 어떻게 처리합니까?

저는 백본에 익숙하지 않아 지금부터는 응용 프로그램을 코드화하기 위해 jQuery를 사용하고 있습니다. 따라서 successerror 콜백 $.ajax을 사용하는 데 익숙합니다.

답변

4

백본이처럼 생성 (및 가져 오기 및 저장) 명령에 두 번째 옵션 해시로 추가, 비슷한 콜백을 제공합니다

this.collection.create({ 
    name : this.$form.find('input[name="name"]').val(), 
},{ 
    error : function(model, response){}, 
    success: function(model, response){} 
}); 
+1

그것은 당신의 서버에 당신이 원하는 무슨이 답변에 추가 가치가있을 수도 있습니다 할 일은 200이 아닌 http 상태로 응답하는 것입니다. 이것이 백본이 오류 콜백을 실행하는 방법입니다. 따라서 dataIn을 가져 와서 유효성을 검사하고, 권한을 부여하고, 트랜잭션을 실행하고, 잘못된 상태가 발생하는 등 적절한 상태 (400, 500 등)로 응답하십시오. 오류에 대한 정보가 포함 된 오류 개체) 및 응답 인수를 통해 해당 개체에 액세스 할 수 있습니다. – jmk2142

+0

좋은 의견입니다! 좋은 예는 양식 유효성 검증에서 400 오류를 사용하고 백본에서 양식 처리 코드에 대한 유효성 검증 오류를 서버에서 전송하는 것입니다. –

+0

여기에 문서가 있습니까? http://backbonejs.org/#Collection-create –