ember.js (1.1.2 사용)에서 사용자를 프로그래밍 방식으로 특정 URL로 '보내거나 리디렉션'하려면 어떻게해야합니까? window.location.href).window.location을 변경하지 않고 ember.js에서 사용자를 리디렉션하는 방법
답변
체크 아웃 the guide on redirection을 확인하십시오.
엠버는 이름의를 통해 당신이 경로로 전환 할 수 있거나 URL입니다 :
router.transitionTo('post', post)
router.transitionTo('/posts/1')
편집 :
내가 외부에서 라우터에 대한 참조를 얻을 수있는 좋은 방법의 확실하지 않다 매우 낙심 한 App이 아닌 Ember 응용 프로그램. 컨테이너 .lookup ('router : main'). Ember 앱 내에서 여전히이 UI 상호 작용을 처리 할 수 있다면 ActionRoute에 액션 (액션 해시 내의 메소드)을 추가하는 것만 큼 간단합니다.
조작 window.location은 Ember 앱 외부에서 전환을 트리거하는 '가장 깨끗한'방법 일 것입니다.
나는 하이브리드 응용 프로그램을 가지고 있습니다. 여기에 legacy
코드와 Ember "app"를 실행합니다. 경계를 명확하게하기 위해 우리는 'LegacyBridge'라고 불리는 단순한 라이브러리를 만들었습니다. 내부 코드를 너무 많이 알지 않아도 Ember에 외부 코드 호출이 도움이됩니다. 외부 코드가 Ember App으로 할 수있는 것을 제한하는 좋은 방법이기도합니다. Ember App은 할 수있는 일이 많기 때문에 옵션을 제한하는 것이 좋습니다.
어쨌든, 여기에 당신이 할 수있는 작업은 다음과 같습니다
var transitionTo, getContainer;
var getContainer = function() {
return App.__container__;
};
var transitionTo = function(route) {
var router = Ordering.__container__.lookup('router:main');
router.transitionTo(route);
};
this.App.LegacyBridge = {
transitionTo: transitionTo
};
을 그런 곳이 아닌 엠버 코드 :
App.LegacyBridge.transitionTo('posts/1');
이 확실히 해키입니다. 일반적으로 컨테이너에서 물건을 직접 조회하지는 않겠지 만 캡슐화가 잘되어 있기 때문에이 케이스는 내가 살 수있는 예외적 인 사례입니다.
URL을 변경하는 것보다 낫습니다. 라우터가 위치 전략을 기록에서 해시 또는 none으로 변경하거나, rootUrl이 변경되거나, 푸시 상태를 지원하지 않는 브라우저 (Ember가 해시로 대체 할 예정인 경우))
희망이 도움이됩니다.
- 1. window.location을 변경하지 않고 백본 사용
- 2. 자격 증명을 변경하지 않고 사용자를 업데이트하는 방법
- 3. URL을 변경하지 않고 웹 페이지를 리디렉션하는 방법 (Apache VirtualHost 사용)
- 4. 기존 URL을 변경하지 않고 새 웹 사이트를 리디렉션하는 방법
- 5. Ember.js에서 다시 리디렉션하는 표준 방법은 무엇입니까? 컨트롤러에서
- 6. 순위를 잃지 않고 브라우저 로케일에 따라 사용자를 리디렉션하는 방법
- 7. window.location을 사용하지 않고 링크를 따라 가십시오.
- 8. .htaccess를위한 좋은 해결책은 URL을 변경하지 않고 하위 폴더로 리디렉션하는 것입니다.
- 9. 사용자 입력 URL (앵커 링크)을 저장하고 window.location을 사용하여 사용자를 리디렉션하는 방법은 무엇입니까?
- 10. 변수를 변경하지 않고 재귀하는 방법
- 11. localStorage 데이터를 잃지 않고 리디렉션하는 방법
- 12. 역할별로 사용자를 리디렉션하는 방법은 무엇입니까?
- 13. JS 대신 PHP를 사용하여 사용자를 리디렉션하는 방법
- 14. 다른 사용자를 리디렉션하는 방법 asp.net mvc 3
- 15. 모바일 사이트로 사용자를 리디렉션하는 가장 좋은 방법
- 16. HTTP 응답을 사용하여 사용자를 리디렉션하는 방법
- 17. 양식 제출 후 사용자를 리디렉션하는 방법
- 18. 사용자를 관련 하위 도메인으로 리디렉션하는 방법
- 19. 등록 후 사용자를 리디렉션하는 올바른 방법
- 20. 모바일 사용자를 모바일 페이지로 리디렉션하는 방법
- 21. 사용자를 Facebook 앱의 로그인 페이지로 리디렉션하는 방법
- 22. 다른 앱에서 사용자를 페이지로 리디렉션하는 방법
- 23. 모든 IE 사용자를 새 페이지로 리디렉션하는 방법
- 24. .htaccess를 사용하여 사용자를 특정 페이지로 리디렉션하는 방법
- 25. 사용자를 iphone 대상 웹 사이트로 리디렉션하는 방법
- 26. Rails Devise : 로그인 후 사용자를 리디렉션하는 방법
- 27. 세션 시간 초과 후 사용자를 리디렉션하는 방법
- 28. 모바일 사용자를 모바일 사이트 m.sitename으로 리디렉션하는 방법
- 29. 쿠키 자바 스크립트가있는 경우 사용자를 리디렉션하는 방법
- 30. Asp.Net에서 사용자를 다시 시작 지점으로 리디렉션하는 방법
어떻게하면 라우터에 대한 참조를 얻을 수 있습니까? – user2765977
Route 내부에서'this.transitionTo '를 시도하거나 컨트롤러 내부에서'this.transitionToRoute'를 시도하십시오 (일반적으로'actions' 해시의 어딘가에). – sheldonbaker
실제로 어떤 인스턴트 메신저는 컨트롤러/경로 외부에서, 즉 일종의 외부 조건 또는 UI 상호 작용의 일부로이를 수행하는 방법입니다. – user2765977