저는 durandal에서 오류 처리에 어려움을 겪고 있습니다.Durandal에서 오류가 발생했습니다.
나는 activate 함수에서 뷰 등을 렌더링하는 데 많은 로직을 배치하는 것이 바람직하다는 것을 알았습니다.
몇 가지 프로그래밍 오류로 인해 전체 앱이 매우 조용하게 넘어갈 때까지 제대로 작동했습니다. 즉, 콘솔에 기록 된 내용이 없거나 트랩 된 오류가 없으면 앱이 activate 기능에 멈춰 있습니다.
예상되는 동작입니까? 내 애플 리케이션 로직을 다른 곳으로 옮겨야 하는가?
실제 코드는 조금 어색하고 많은
나는 내가 쓴보고 있었는지 증명하기 위해 JQuery와의 약속 등에 싸여 다음
콘솔에 아무것도 썼다public activate(stationId: string): void {
throw "Error in detail activate";
}
및 응용 프로그램을 매달리는 것 외에 다른 명백한 오류는 발생하지 않았습니다.
발생하는 즉시 일 :
public activate(stationId: string): void {
setTimeout(function() {
throw "Error in detail activate";
}, 0);
}
를 활성화 기능은 진행하지만 불행히도이 중이 오류를 추적하는 possilbe되지 않은이 상황에서?
나는 정품 인증 시점에서 응용 로직을 수행하는 방법을 찾아야하지만, 이러한 오류가 단순히 삼킨 것이 아니라면 유용 할 것이라고 우려했다.
두란 달 (Durandal)을 조금 더 조사하고 파기했습니다.
오류가 계속 사라집니다. Durandal이 오류를 기록하려고하는 명백한 시도에도 불구하고. activator.js 정품 인증 기능을 살펴 보았습니다.
try {
result = invoke(newItem, 'activate', activationData);
} catch (error) {
system.error(error);
callback(false);
return;
}
기본적으로 catch 조건이 실행되고 시스템 오류가 호출됩니다. 결과는 녹아웃 바인딩 등으로 사라지는 것 같습니다. 어쨌든이 오류를 더 잘 보이게 할 수 있습니까? 지금은 activator.js에 breakpoint를 두는 것으로 막혀 있습니다.
durandal 버전 2.0.1을 사용 중입니다.
'activate '는 뷰가 그 시점에서 렌더링되기 때문에 렌더링 뷰와 연관된 로직을위한 장소가 아닙니다. 다른 무엇보다도보기에 사용할 데이터를 준비하는 곳입니다. 뷰 렌더링을 위해서는'attached'와'compositionComplete'을 찾아야합니다. 'attached'와'compositionComplete' 시그니처는 그들의 인수에서 뷰에 접근을 제공합니다. 그 두 가지 방법 중 하나에 코드를 옮겨야하는지 궁금합니다. –