2013-06-21 3 views
2

내 응용 프로그램이 window.App에 있다고 가정하면 App.__container__.lookup("router:main")의 라우터를 얻을 수 있습니다.현재 routeName을 얻는 방법은 무엇입니까?

어떻게 현재 경로에 액세스 할 수 있습니까? 특히 그 속성을 얻고 싶습니다 routeName.

답변

10

응용 프로그램의 현재 상태에 대한 계산 별칭 인 currentPath이라는 속성이 있습니다. 당신이 이런 식으로 뭔가를 할 수 같은 일 현재 routeName으로 활용하려면 다음

App = Ember,Application.create({ 
    currentPath: '' 
}); 

ApplicationController : Ember.Controller.extend({ 
    currentPathDidChange: function() { 
    App.set('currentPath', this.get('currentPath')); 
    }.observes('currentPath') 
}); 

을 다음과 어디에서나 액세스 :

App.get('currentPath'); 

currentPath 속성에 대한 추가 정보를 원하시면 here를 참조하십시오.

App = Ember.Application.create({ 
    LOG_TRANSITION: true 
}); 

참고 사용이 : 언급도 가치가

는 현재 경로 이름은 브라우저 콘솔에서 응용 프로그램이 상태/경로를 변경할 때마다 기록이 true로 LOG_TRANSITIONS을 플래그를 활성화 할 수 있다는 것입니다 App.__container__.lookup("router:main")은 내부 API이므로 디버깅 용도로만 사용됩니다.

희망이 있습니다.

+0

Ember 코어의 버그를 수정하기 위해'App .__ container __. lookup'을 사용하고 있습니다. 따라서 어플리케이션 컨트롤러를 확장 할 수 없습니다. 어디에서'currentState'를 정확히 찾을 수 있습니까? 'App'이나'Router'의 속성이 아닙니다. – chrmod

+0

링크가 도움이된다면, 감사합니다. 하지만'App'에서'StateManager'에 접근하는 방법은 무엇입니까? – chrmod

+0

'StateManager'는 이전 버전의 라우터에 사용되었습니다. 이제 v2 *에서 라우터는 자신의 라우팅 등을 처리합니다.'ApplicationController'의'currentPath' 속성은 여기에서 처리됩니다 : https : // github. com/emberjs/ember.js/blob/v1.0.0-rc.5/packages/ember-routing/lib/system/router.js # L75 – intuitivepixel

관련 문제