URL을 입력하십시오. /path/path2/path3/123;sdf=df
과 경로 구성 :각도 : URL로 모든 경로 세그먼트 구성을 해결하십시오.
{ path: 'path', data: { g: 'h' }, children: [
{ path: 'path2', data: { c: 'd' }, children: [
{ path: 'something', component: TestpageComponent, data: { a: 'b' } },
{ path: 'path3/create', component: TestpageComponent, data: { b: 'c' } },
{ path: 'path3/:id', component: TestpageComponent, data: { b: 'c' } },
] }
] },
내가 필요로하는 모든 수준에있는 모든 data
매개 변수의 결과 집합 (URL의 각 세그먼트)를 얻기 위해 모든 세그먼트에 대한 실제 구성을 찾는 것입니다.
예를 들어 세그먼트로 URL을 분할 할 수 있습니다.
console.log(this.router.parseUrl(url));
또는 더 정확하게 할 수
console.log(this.router.parseUrl(url).root.children['primary'].segments);
[{"path":"path","parameters":{}},{"path":"path2","parameters":{}},{"path":"and","parameters":{}},{"path":"123","parameters":{"sdf":"df"}}]
그래서, 세그먼트로 URL을 분할하는 것은 문제가되지 않습니다 반환하는. 그러나 각 세그먼트에 대한 구성을 가져와야합니다.
내가
console.log(this.router.config);
내가 구성 트리를 통해 세그먼트로 가서 내가 원하는 지점을 찾을 수있는 모든 경로의 실제 구성을 얻을 수 있지만,이 문제를 예를 들면 발생할 수 create
세그먼트에 대해 :id
을 해결하는 중입니다. 그래서 라우터의 내부 라우터 구현이 변경되면 광산을 변경할 필요가 없다는 구성을 해결하는 방법을 사용하고 싶습니다.
예 : 일부 보호자에 의해 보호되는 URL의 50 % (예 : 로그인 한 사용자 만 이동할 수 있음)와 다른 50 %가 보호되지 않은 (모든 사용자에게 표시됨) 경우를 상상해보십시오. 따라서 내비게이션 메뉴 레벨 (router-outlet
외부)에서는 현재 사용자와 관련된 링크 만 표시하므로 어떤 경로가 가드에 의해 보호되는지 알아야합니다. 경비원/데이터/어떤 것이 든 문제의 특별한 경우입니다.
예 :을 따르지 마십시오. 특정 URL에 대한 구성 설정을 얻는 일반적인 방법을 찾고 있습니다.
여하튼 가능합니까?
이것은 사실입니다. 현재 활성화 된 경로의 데이터를 가져와야하는 경우에만 작동합니다. 내 문제는 현재 경로와 관련이없는 URL 만 있다는 것입니다. URL을 활성화하고 싶지는 않지만이 URL을 활성화하면 어떤 구성이 수행 될지 알고 싶습니다. – smnbbrv
이 질문을 명확히하기 위해 질문에 예제를 추가했습니다. – smnbbrv
편집 솔루션이 정확히 원하는 것입니다. 기피. 라우트 권한과 링크 권한을 별도로 관리하고 싶지 않습니다. 이 기능을 다시 사용하더라도 권한이 복제되므로 두 곳에서 변경해야한다는 것을 기억해야합니다. 메뉴가 자동으로 어떤 링크가 금지되어 있는지 이해하고 싶습니다. – smnbbrv