2013-07-02 2 views
4

Ember 및 Ember Data로 서버 측 유효성 검사를 처리하는 데 문제가 있습니다.Ember 데이터로 서버 측 유효성 검사 처리

유효성 검사 오류가 발생하면 API는 코드 422를 반환합니다. Ember 데이터는 모델의 becameInvalid 콜백을 트리거합니다.

여기에서 내가 얻는 오류를 처리하는 가장 좋은 방법은 무엇인지, 그리고 오류를 어떻게 처리 할 수 ​​있는지를 잘 모르겠습니다.

App.Challenge = DS.Model.extend Ember.Validations, 
    title: attr('string') 
    summary: attr('string') 
    # other attributes 

    becameInvalid: (errors) -> 
     # is it the place where I should handle the errors? 
     # how would I make the errors bubble up to the view here? 

문제점이 2 개 있습니다.

  • 나는 becameInvalid이 오류를 처리하는 장소이며,이 경우, 만드는 방법에 오류가있는가되지 않습니다, 뷰
  • becameInvalid에서의 @get('isValid') 반환 true를 표시 할 경우 확실하지 않다 나 한테 감각이있어.

답변

2

어디서 오류를 처리해야합니까?

예. 그러나 전혀 아무것도 할 필요가 없을 수도 있습니다. Ember-data는 api가 json 응답에 유효성 검사 오류를 포함 시켰을 것으로 기대합니다. 해당 오류 개체는 becameInvalid 후크에 전달되고 모델에 errors 속성으로 저장됩니다. 그래서 당신은 당신의보기에서 오류를 표시 할 일은 원하는 모든, 그것은 뭔가를 할 수있을만큼있을 경우 :

{{input value=firstName}}<p class="inline-help">{{errors.firstName}}</p> 

참조 : becameInvalid에서 https://github.com/emberjs/data/blob/master/packages/ember-data/lib/serializers/rest_serializer.js#L50-L61

, @get ('isValid') 사실을 돌려 준다. 나에게 이해가 가지 않는다.

그것은 이상하다. 바인딩 된 것 같아요. 바인딩이 업데이트되기 전에 becomeInvalid 후크가 실행 중입니다.

+0

좋아요, 맞아요, 아무 것도 할 필요가 없습니다. 내 문제는 내가 ember-validations를 사용하고 있으며'validationErrors' 객체 내에 오류를 설정하고 있기 때문에 오류를 더 복잡하게 처리해야합니다. 나는'errors' 객체에 직접 에러를 설정하는 또 다른 플러그인을 시도 할 것입니다. 감사. – Robin

관련 문제