나는이 모델의 속성 중 하나의 형식을 검증하는 사용자 정의 유효성 검증 방법과 백본 모델을 가지고하지 않을 경우 실행 검증 및 설정에 불 오류 이벤트하지만이 설정 것을 중지하지 않습니다. 내 모델은 텍스트 필드를 통해 상기 속성을 노출하는 뷰에 연결됩니다. 뷰에는 모델 변경 사항을 다시 서버에 저장하기 위해 사용자가 명시 적으로 눌러야하는 '저장'버튼이 있습니다. Backbone.js : 검증이
잘못된 속성 값, I는 할 사용자 유형은 시각적으로 무효 상태 인 것으로 필드를 표시 할 때. 지금까지, 쉬운 - 나는myModel.set({ attribute: value })
를 호출하는 함수에 입력 필드의 변경 이벤트를 바인딩과 유효성 검사가 실패하고 난 무효로 입력을 표시해야 할 때 말할 모델에
"error"
이벤트를 수신 할 수 있습니다. 내가 저장 버튼을 클릭을 처리 할 때
문제
온다.Backbone.Model.set
은 유효성 검사가 실패 할 경우 실제 모델의 속성 설정을 중단하기 때문에 값이 유효하지 않으면 내 모델에 사용자가 입력 한 값이 정확하게 반영되지 않습니다. 사용자가 잘못된 값을 입력 한 후 저장을 클릭하면 모델 유효 여부를 확인하고 유효하지 않은 특성이 실제로 설정되지 않았기 때문에 모델이 유효한지 확인한 다음 이전 (유효한) 특성 값을 서버에 저장합니다. 내가 원하는 것 같아 무엇
는 항상 요청한 변경합니다 set
의 버전입니다,하지만 여전히 검증 및 이벤트를 트리거합니다. set(..., { silent: true })
은 변경을 허용하지만 유효성 검사 또는 이벤트 트리거를 실행하지 않습니다.
간단히 말해서 - 내 모델이 유효하지 않은 상태 (사용자가 유효하지 않은 속성 값을 입력 한 경우)에 존재하기를 원하며 유효 기간과 무효 기간 사이에 전환 할 때 이벤트를 가져오고 싶습니다. 백본과 함께이 작업을 수행하는 적절한 방법이 있습니까? 아니면 완전히 잘못 생각하고 있습니까? 나는 검증 이런 종류의와 함께했던 어떤
네,이 방법이 효과가 있습니다. 차라리 실제 입력 값을 다시 가져올 필요는 없겠지만, 모델이 유효하지 않은 상태 인 경우에는 set을 호출하여 전체 현재 특성 해시를 전달하고 성공할 경우에만 저장할 수 있다고 가정합니다. . jashkenas가 대체 접근법을 제안한 백본 (backbone) 문제를 열었습니다. https : // github.co.kr/documentcloud/backbone/issues/1169 – grumbler