2013-01-03 2 views
2

몇 가지 복잡한 상태 저장 구성 요소로 구성된 Ember 응용 프로그램을 작성하고 있습니다. Ember가 전통적인 CRUD 앱이 아닌 것처럼 이런 종류의 앱을 처리하는 방법에 대해 머리를 감싸는 데 문제가 있습니다.Ember 라우터가있는 여러 개의 상태있는 구성 요소

대화 형 단일 페이지 응용 프로그램입니다. 일부 예 구성 요소는 XMPP 텍스트 채팅, 멀티 파티 오디오, XMPP 공유 화이트 보드, 그리고 팝업 통지

은 사용자 컨텍스트를 설정합니다 (I 라우터를 통해 처리 볼 수 있습니다) 글로벌 상태 (이 사람 오디오/화이트 보드에서 작업 중입니다.) 내가 꽤 이해하지 못하는 것은 라우터가 오디오 및 화이트 보드와 관련이 없지만 여전히 스테이트 풀인 채팅 컨텍스트를 설정하는 데있어서 어떤 역할을 할 것인지에 대한 역할이다. 라우터의 URL 문자열이 이러한 모든 구성 요소의 상태를 동시에 반영 할 수있는 방법을 보여줄 수 없습니다.

라우터를 완전히 사용하지 않고 건너 뛰는 경우입니까? 그렇다면 내 응용 프로그램의보기/컨트롤러를 어떻게 연결할 수 있습니까? 지금까지는 라우터의 connectOutlets 메서드를 사용하여 내 뷰와 컨트롤러를 연결했습니다. 이 방법을 호출하지 않으면이 바인딩을 수행하는 또 다른 (구조화되고 체계화 된) 방법이 무엇일까?

감사

+0

참고로 새로운 [라우터 API가]이 (http://emberjs.com/guides/routing /)가 Ember에게 최근 추가되었으며 Ember 가이드에서 업데이트되었습니다. – CraigTeegarden

답변

2

좋은 질문!

  • 글로벌 상태 : 라우터를 사용
  • 응용 프로그램 상태 : 컨트롤러 싱글에서 나는 그 상태를 관리하는 라우터를 사용하는 것이 좋습니다 응용 프로그램 구성 요소 일반적으로

을과 관련된 사용자는 즐겨 찾기에 추가하거나 브라우저의 앞으로/뒤로 단추를 사용하여 상호 작용할 수 있습니다. 그냥 추측하지만 화이트 보드의 ID를 포함 할 수도 귀하의 애플 리케이션을위한.

채팅, 오디오 및 알림과 같은 구성 요소는 일반적으로 라우터에 독립적으로 상태를 유지합니다. 경우에 따라 이러한 구성 요소는 경로에 따라 다르게 동작 할 수 있습니다 (채팅은 특정 화이트 보드에 따라 특정 채널에 바인딩 될 수 있음)하지만 채팅 위젯 자체의 상태는 ChatController 싱글 톤의 속성으로 저장됩니다.

엠버 가이드가 아직 완료되지 않은,하지만 당신은 도움 "응용 프로그램 등록 정보를 저장"컨트롤러 가이드의 마지막 부분을 찾을 수 있습니다 http://emberjs.com/guides/controllers/

+0

감사합니다. – weichsem

관련 문제