2013-09-04 3 views
2

대상 (동적 ID 포함)이 현재 경로와 일치하는 경우 전환을 중단하는 일반적인 방법 (즉, 응용 프로그램 라우터)이 있습니까?ember.js : 대상이 현재 경로와 일치하는 경우 전환을 중단하는 방법

willTransition에 연결하려고 시도했지만 transition.params에 현재 ID가 포함되어있는 것 같아서 비교할 항목이 없습니다.

+0

궁금한 점이 있다면, 왜이 코드가 필요할까요? – mavilein

+0

@mavilein : 내 페이지에는 애니메이션과 같은 CSS가있는 상태가 있습니다. 이 응용 프로그램의 특성으로 인해 사용자는 실제로있는 URL을 호출합니다. 따라서 중단함으로써 애니메이션 상태를 다시 설정하지 않아도됩니다. – fwoeck

답변

1

전류 경로의 PARAMS 아닌 대상을 참조한다 전이의 특성 params. 필요한 것은 providedModels 속성을 통해 전환에 제공된 모델을 확인하는 것입니다. 코드는 다음과 같아야합니다.

+0

통찰력을 가져 주셔서 감사합니다,이 잘 작동합니다! – fwoeck

0

난 그냥 내 애플 리케이션에서 이것을 테스트하고 당신이 찾고있는 것 같아요. 기본적으로 컨트롤러의 model.id에 대한 매개 변수에 job_id을 테스트합니다.

App.JobRoute = Ember.Route.extend({ 

    actions: { 
    willTransition: function(transition) { 
     if (this.controller.get('model.id') == transition.params.job_id) { 
     transition.abort(); 
     } 
    } 
    } 

}); 
+0

Yip, 그게 내가 시도한거야,하지만 (적어도 내 환경에서) 전환의 params 해시는 내가 현재있는 ID 세트와 전환이 가리키는 ID 세트가 아닙니다. 이것이 설치로 인한 것이 아닌지 다시 확인하겠습니다. – fwoeck

+0

방금 ​​두 번 확인했는데'willTransition'의 매개 변수에서 새 정보를 얻습니다. –

+0

노력에 감사드립니다! 내 params 상황에 대한 이유를 찾으면 의견을 말할 것입니다. – fwoeck

관련 문제