-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
리듀서와 앱 전역 이벤트 문의 #18
Comments
안녕하세요. 질문 별로 나누어서 답변드립니다. 리듀서에서 공통 응답 헤더에 따라 실패 처리를 해주고 싶은데 방법을 모르겠네요. {
"header": {
"isSuccessful": false,
"message": "Error"
},
"data": null
} 리듀서의 onSuccess()를 정의하여 처리하려 하여도 리듀서의 소스를 보면 단순히 success 함수의 배열을 차례대로 호출만 해주고 있을 뿐 반환 값의 여부를 보아 실패 처리한다든가 하는 것이 불가능해 보여 방법이 있는 것인지 궁금합니다.
요청의 응답이 성공이라면 리듀서에서는 |
또 리듀서의 소스를 보면 fail()과 finish()에서 this.removeAction()를 호출해주고 있습니다. removeAction를 필수로 호출해야 하진 않습니다만. 위의 방법처럼 |
그리고 앱 전역 이벤트로 error 이벤트가 발생했을 경우 레이어 팝업으로 표시를 해주려고 하는데요. 전역 이벤트 |
추가. 감사합니다. |
마지막 답변은 문서 업데이트를 기다리겠습니다. :) 답변 고맙습니다. |
@flyskyne 리듀서 미들웨어 주입하는 다음의 예제를 참고하세요. :) https://gist.github.com/ibare/d6bceb1bb9df2b412afaf4302e053537 참고로 리듀서에서 dispatch의 핸들러로 결과를 보내는 this.finish 메소드는 인자 구성 방식에 제약이 없는데요. 이를 이용해 첫 인자는 error 객체, 두 번째 인자는 응답 메세지 객체로 작성하는 방법을 컨벤션으로 사용하고 있습니다. (node 쪽 API 의 컨벤션과 유사합니다. ^^) 그러면 핸들러 쪽에선 성공과 오류에 대하여 일관된 코드 작성이 가능합니다. this.dispatch(Woowahan.Action.create(USERS), function(err, resp) {
if (err) {
// 오류 처리
}
// 응답 처리
}); |
안녕하세요.
리듀서에서 공통 응답 헤더에 따라 실패 처리를 해주고 싶은데 방법을 모르겠네요.
예를 들면 아래와 같은 응답의 경우 요청에 자체를 성공을 한 것이지만 앱에서는 실패로 처리를 하여야 하는데요.
리듀서의 onSuccess()를 정의하여 처리하려 하여도 리듀서의 소스를 보면 단순히 success 함수의 배열을 차례대로 호출만 해주고 있을 뿐 반환 값의 여부를 보아 실패 처리한다든가 하는 것이 불가능해 보여 방법이 있는 것인지 궁금합니다.
또 리듀서의 소스를 보면 fail()과 finish()에서 this.removeAction()를 호출해주고 있습니다.
만약 onSuccess()에서 finish()를 호출하지 않는다면 직접 removeAction() 처리를 해주어야 하는 것인지요?
마찬가지로 onFail()에서 removeAction()를 직접 처리해주어야 하는지요?
그리고 앱 전역 이벤트로 error 이벤트가 발생했을 경우 레이어 팝업으로 표시를 해주려고 하는데요.
팝업 뷰를 정의했다고 했을 때 이 뷰를 동적으로 추가해주려면 어떻게 해야 하는지요?
뷰 내부에서는 this.addView()를 통해 가능한 것으로 보이는데요.
앱의 이벤트 핸들러에서는 어떤 방법이 예제나 설명을 뒤져보아도 보이지 않아서 질문 드립니다.
물론 뷰의 기능을 무시하고 직접 jQuery를 이용하여 조작하여도 되겠지만 방법이 있을지요?
설명에는 토스트 등을 보여주는데 사용할 수 있다고 되어 있는데 구체적인 방법을 알려주실 수 있을지요?
The text was updated successfully, but these errors were encountered: