2014-07-18 2 views
1

는 이제 사용자가 프로젝트의 목록이 있다고 가정 해 봅시다, 각 projectproject._id다른 URL 경로

때 의해 관련 charts의 다양한 컬렉션 항목, reports의 자신의 세트, tags 등의이 사용자가 project을 선택하면 연결된 모든 컬렉션 항목을 경로로 볼 수 있습니다 (예 : /project/<projectId>/chart/<chartId>).

현재 사용자는 한 번에 하나의 프로젝트 만 볼 수 있습니다. 새 탭이나 새 브라우저를 열면 여전히 한 프로젝트 만 볼 수 있습니다. 사용자가 프로젝트를 전환하면 다른 모든 탭/창이 반응적으로 새 프로젝트로 변경됩니다. 이것은 현재 프로젝트가 Meteor.user.profile.projectId에 묶여 있기 때문입니다 (그러나 더 나은 방법을 찾고 있습니다).

이 동작을 변경하여 탭과 창을 서로 독립적으로 변경하고 싶습니다. 사용자가 새 창에 project\project1을 붙여 넣으면 현재 탭이 project\project2인데도로드해야하며 관련 컬렉션이 있습니다. 나는 그것이 의미가 있기를 바랍니다.

잘 모르겠습니다. 나는 제안과 해결책을 찾고있다. 감사.

답변

1

나는이 쉽게 사용하여 세션 변수를 수행 할 수 있다고 생각 :

  1. 는, 클라이언트 코드 어딘가에 Session.setDefault('project', 1)을 기본 설정 (또는 프로젝트가 정상적으로 처리됩니다 정의되지 않은되고 있는지 확인)

  2. 사용자가 프로젝트를 선택하면 변수를 설정합니다. Session.set('project', [selectedProjectId])

  3. 표시 할 프로젝트를 결정해야하는 경우 : Session.get('project')

+0

이 문제에 대해 생각했지만 세션이 페이지로드 전체에서 지속되지 않기 때문에 이것이 작동하는지 확신 할 수 없습니다. 따라서 사용자가 blah.com/project/project2/chart/chartid 링크를 클릭한다고 가정 해 봅시다. 유성은 클라이언트 측에서 세션 프로젝트를 어떻게 설정합니까? 당신이 괜찮다면 모범이 될 것입니다. – landland

+0

사실,이 시도해 보겠습니다. 니가 한 말을 내가 생각해. 나는 이미 세션 변수를 사용하여 현재 선택된 프로젝트를 관리하고있다. 난 그냥 user.profile.projectId 비트를 제거해야한다고 생각하고 그것은 작동합니다. 각 탭은 user.profile – landland

+0

yup 아래에 정의 된 일반 탭보다는 자체 Session var를 갖습니다. 감사! 나는이 것을 지나치게 overthinking했다. – landland