2017-02-06 2 views
1

화면에 강좌 목록이 필요합니다 (고안된 예). 코스를 클릭하면 해당 코스를 수강하는 학생 목록으로 확장됩니다 (여전히 코스 목록 표시). 학생을 클릭하면 학생 세부 정보의보기로 확장되어야합니다 (여전히 학생 목록 및 코스 목록 표시).Aurelia 중첩 라우터 및 라우터보기

기본적으로 중첩 된 라우터를 갖고 싶습니다. ,

this.router.configure(config => { 
     config.map([ 
      {route: "course/:course-id/student/:student-id", name: "student", moduleId: "student"} 
     ]); 
}) 

student.html 갖는 자체 라우터 시청 소자

상기 방법 :

예는

config.map([ 
     {route: "", moduleId: 'no-selection', title: 'Select'}, 
     {route: "course/:course-id", moduleId: 'course', name: 'course'} 
]); 

course.js (라우터 주입)을 app.js 하지만 최상위 링크 (코스)를 클릭하면 콘텐츠가 내부 라우터보기에 배치됩니다. 더 나쁜 것은, 확장 된 모든 학생에게 라우터보기가 있다는 것입니다. 어떻게 관리합니까?

기본적으로 나는 이것을 수행하는 방법에 대한 문서를 찾을 수 없습니다. 자식 라우터 항목이 정확히 필요한 것 같지 않습니까? 어떤 도움을 주시면 감사하겠습니다.

+0

나는 작업을 약간 복잡하게 생각했다. 정말 라우터에 꼭 필요한 것입니까? 내가 이해하는 바에 따르면 정기적 인보기가 있어야합니다. – Travo

+0

내비게이션의 역사를 원하고 다른 코스/학생 등으로 신속하게 전환 할 수 있기를 바랍니다. 다른 방법을 제안 할 수 있다면 ... 나는 Aurelia에 매우 익숙합니다. 뭔가 분명히 빠져있을 수도 있습니다. – DaafVader

+0

이것을 달성하기 위해 중첩 된 라우터를 사용할 필요가 없습니다. 단일 레벨 라우터는 몇 가지 구성 요소와 함께 매우 쉽게 처리 할 수 ​​있습니다. 이것을 설명하는 데 시간이 좀 걸리고 단 하나의 Stack Overflow 질문의 범위를 넘어서게됩니다. Vimeo에서 Rob Eisenberg의 중급 Aurelia 과정을 확인하는 것이 좋습니다. 그것은 당신이 원하는 것을 정확히 만들 수 있습니다. https://vimeo.com/ondemand/intermediateaurelia/ –

답변

1

이것을 살펴보고 단일 라우터로 어떻게 구현할 수 있는지 살펴 보겠습니다. 다음은 내가 사용할 수있는 경로 구조입니다.

[ 
    { route: "", moduleId: 'no-selection', title: 'Select'}, 
    { route: "course/:courseId/:studentId?", moduleId: 'course', name: 'course'} 
]); 

studentId 매개 변수는 선택 사항입니다.

다음은이 과정 페이지를 사용하여 activate 콜백에서받는 매개 변수만을 기준으로 원하는 모든 작업을 수행하는 방법을 살펴 보겠습니다.

지금 당장은 완전한 대답을 드릴 시간이 없지만, 이것이 올바른 길로 인도 할 수 있기를 바랍니다.

+0

고마워, 나는 너가 이것으로 어디로 가는지 알 겠어. 그래도 해킹 같은 느낌. 라우터를 사용하는 것이 쉽다고 생각했지만, 아우렐 리아의 라우터는 매우 기본적인 것처럼 보입니다. – DaafVader

+0

무엇이 해킹하는지 잘 모르겠습니다. 불필요하게 복잡한 아키텍처를 만들지 않는 간단한 솔루션입니다. 내가 가지고있는 디자인을 사용하여이 작업을 수행하는 방법을 보여줄 수 있었지만 대신 문제에 대해 생각할 수있는 다른 방법을 찾도록 도와 주려고했습니다. 또 다른 옵션은 두 개의 개별 매개 변수 대신 선택적 매개 변수를 사용하는 것입니다. –

+0

사실, 선택적 매개 변수를 사용하여 내 대답을 업데이트 할 것입니다. –