클릭 핸들러로 호출 된 함수가 약속을 반환하면 KnockoutJS를 사용할 때 문제가 발생합니까?KnockoutJS 약속을 반환하는 바인딩 바인딩
1
A
답변
3
우선 : 시도해 보셨습니까? 이것을 직접 테스트하는 것은 매우 쉽습니다.
직접 대답하려면 : 당신이 생각하는 바에 달려 있습니다 (좀 더 정교함은 좋았을 것입니다).
일부 논리를 수행하고 약속을 반환하는 경우 (클릭 연결에 전혀 관련이없는 어떤 이유로) 클릭 핸들러에서 호출 할 수 있으므로 클릭 핸들러.
클릭 처리기의 논리가 비동기 작업에 종속되어 있기 때문에 완료 될 때까지 기다려야하는 경우 반환 된 약속이 무시되므로 클릭 처리기로 사용할 수 없습니다. 함수를 호출하는 클릭 핸들러를 정의 할 수 있으며 리턴 된 약속에 대한 콜백을 작성합니다.
더 구체적인 것은 더 정교한 질문이 필요합니다. 생각해 보면 상황의 (의사) 코드 예제가 이상적입니다.
예 :
function asyncLogic() {
var deferred = $.Deferred();
// Perform async logic, then resolve
setTimeout(function() {
deferred.resolve();
}, 100);
return deferred.promise();
}
function handleClick(event) {
// Disable the button, then perform the async logic, when its done re-enable the button
$(event.target).attr('disabled', 'disabled');
asyncLogic().then(function() {
$(event.target).removeAttr('disabled');
});
}
<form>
<input type="submit" data-bind="click: handleClick" />
</form>
+0
설명 해 주셔서 감사합니다. – Phil
관련 문제
- 1. 각도 - 약속을 반환하는 함수에 바인딩
- 2. knockoutjs 바인딩 내의 클릭 바인딩 foreach 바인딩
- 3. Knockoutjs 바인딩 개체 문제
- 4. knockoutjs 테이블과의 바인딩 문제
- 5. KnockoutJS - 초기 값만 바인딩
- 6. KnockoutJS 옵션 바인딩
- 7. KnockOutJS 바인딩 문제
- 8. KnockoutJS - ViewModel 다시 바인딩
- 9. 바인딩 문제인 경우 knockoutjs
- 10. 다차원 knockoutjs 바인딩 observableArray
- 11. knockoutjs 바인딩 문제
- 12. KnockoutJS UI 도우미 바인딩
- 13. knockoutjs - 데이터 바인딩 표시
- 14. KnockoutJS 모델 바인딩 전의 MVC 모델 바인딩
- 15. 데이터 바인딩 버튼 모델보기 KnockoutJS
- 16. 목록에 Knockoutjs 목록 선택 바인딩
- 17. KnockoutJS UL LI의 데이터 바인딩
- 18. KnockoutJS 이중 바인딩 위젯 애플리케이션
- 19. 이미지로드 이벤트에 Knockoutjs 이벤트 바인딩
- 20. KnockoutJS 체크 박스와 CSS 바인딩
- 21. KnockoutJS 중복 값으로 바인딩되는 바인딩
- 22. KnockoutJS ForEach 바인딩 - 동적 URL
- 23. knockoutjs 데이터 바인딩 바인딩 선택 예기치 않은 결과가 발생했습니다.
- 24. Knockoutjs 옵션 JSON 데이터로 바인딩 하시겠습니까?
- 25. KnockoutJS 매핑 플러그인을 사용할 때 깨진 바인딩
- 26. knockoutjs with mvc 컬렉션 모델 바인딩
- 27. MVC4 목록에 바인딩 된 Knockoutjs <>
- 28. KnockoutJs - 관찰 가능한 바인딩 및 범위
- 29. 사용자가 링크를 클릭 한 후 Knockoutjs 바인딩
- 30. knockoutjs - 맞춤 템플릿이 상위 콘텐츠로 바인딩 됨
나는 당신의 질문을 이해하지 않는다, 당신은 확장 할 수 있습니다? – Tanner