2013-10-22 5 views
2

백본과 함께 Marionette를 사용하고 있는데, 다른 경로 매개 변수를 사용하여 두 번 실행하는 것처럼 보이는 까다로운 경로가 있습니다. 다시 클릭하면 원본 페이지가 아닌 경로의 첫 번째 실행으로 되돌아갑니다. 백본 디버거를 사용하면 6 개의 다른 라우터가 있고 그 중 하나 (강조 표시된)에만 해당 경로가 있다는 것을 알 수 있습니다. 따라서 인스턴스가 하나뿐입니다. 백본 경로가 두 번 실행 중입니다.

enter image description here

경로

는 일반 이전 링크에 의해 촉발되고있다. navigate()를 사용하고 있지 않습니다. 내가 그 링크를 클릭하면

<a href="#device/3/hash/84855d0624dbeb7957cad7d09f7faca78166f033ab71e53aa6199f285d6d903f/incident/8IFVA" class="btn btn-actions action-details"> 
    <span></span> &nbsp;App 
</a> 

, 당신은 경로가 두 개의 서로 다른 서명이 트리거되는 것을 볼 수 있습니다 :

enter image description here

enter image description here

내가 기분이 여기에 실제 링크 HTML입니다 백본 경로가 어떻게 작동하는지, 왜 내 경로 정의가 incidentId와 일치하는지, 일치하지 않는지 오해하고 있습니다. 여기 재미있는 일이 있습니다. 링크를 브라우저에 붙여 넣으면 경로가 한 번만 트리거됩니다.

답변

2

일반적으로 경로 또는 이벤트가 여러 번 실행되는 경우 일반적으로 앞뒤로 이동할 때보기가 제대로 처리되지 않음을 의미합니다.

수작업으로 작성된 탐색을 수행하지 않으므로 수동으로 URL에 액세스 할 때 한 번만이 트리거가 표시되는 경우 특히 그렇습니다.

라우터 또는보기 코드를 보지 않고도 실제로 신뢰할 수있는 솔루션을 제공하기가 어렵습니다. 특정 경로 처리기에 중단 점을 넣기 시작하고 트리거되는 위치의 호출 스택을 확인합니다.