경로 정의에 정의 된 roleAccess
속성뿐만 아니라 사용자의 역할도 확인해야하는이 경로 보호 기능이 있습니다.각도 2 경로 보호 장치가 값을 설정할 때까지 대기하지 않습니다.
내가 직면하고있어 문제는 .map
은 그게 .map
실행을 허용해야한다 (는 @ngrx/store
에 null
로 시작합니다) 거짓 인 경우에만 관계없이 accounts.isSelfPending
의 실행 것입니다.
어떻게하면됩니까?
편집 : 나는 내 질문이 조금 애매 할 수 있다는 것을 깨닫게, 내가 필요로 무엇 컴퍼넌트 계층까지 높은 발사하고 저장소에 저장되어있는 /self
요청에서 사용자의 정보를 기다리는 것입니다.
문제는 DashboardComponent
에 해고 되었음에도 불구하고 /self
요청이 실행되지 않고 있으며 이는 차례대로 AdsComponent
을 라우팅의 하위 항목으로 유지합니다. (어느 내가 현재이 경비원과 잠그려고 노력하고있는 길이다).
/self
요청이 왜 발생하지 않습니까? 내가 생각하기에이 문제의 일부입니다. 실현 후
return this.store.select('accounts')
.let((state: Observable<IAccountsStorage>) => state.filter((accounts: IAccountsStorage) => accounts.isSelfPending !== null && accounts.isSelfPending === false)))
.map((accounts: IAccountsStorage) => {
this.route.data.subscribe(
data => {
if (accounts.self) {
if (accounts.self.role !== data['roleAccess'] && (data['roleAccess'] !== 0 || data['roleAccess'] !== undefined || data['roleAccess'] !== null)) {
return this.router.navigateByUrl('admin/dashboard');
}
else {
return true;
}
}
}
);
}
).first();
구조를 따라하기가 약간 어렵습니다. 내가 너를 도우려고 Pb를 책정 할 Plunkr을 만들 수 있다고 생각하니? :) – Maxime
@Maxime 나는 그 순간 더 많은 시간을 보내고 싶었지만, 나는 다른 방향으로 나아가는 괜찮은 해결책을 찾을 수 있었다. 내 대답을 보시다시피. – Chrillewoodz