0

요약 자식 페이지에서 작동
4)
아우렐 리아 setRoot의 때 홈 페이지가 아닌


1을 작동하지 않습니다 로그 아웃하고 로그인에 페이지 촬영 취득) 로그인에
2) TEST1 버튼으로 메인 페이지를 확인하고 버튼을 로그 아웃
3)를 눌러 TEST1
4) TEST1 페이지로 이동 얻을
5)를 눌러
ERROR [앱 라우터] 오류를 로그 아웃 : 경로를 찾을 수 없습니다 :/TEST1

나는 내가 고민하고있는 플 런커 (plunker)를 만들 때 내 코드를 잘라 냈다. 그러나 나는 사용하고있는 주사 태그를 좋아하지 않으므로 렌더링하지 않는다. 그래도 코드 레이아웃을 볼 수 있습니다 (아무도 주사 문제를 해결할 수 있다면 멋지 겠죠).
plunker는 : - 로그인 암호 재설정 (암호 plunker으로 관련이없는 밖으로 다시 촬영) http://embed.plnkr.co/V5IoGqDfmo1djd3kW6bZ/

아이디어는 입력 모듈은 두 개의 경로와 라우터를 가지고 있다는 것입니다. 사용자가 로그인하면 루트에 앱을 설정합니다.이 앱에는 로그인 한 사용자 만 액세스 할 수있는 다른 라우터가 있습니다.

로그인 한 후 로그 아웃 버튼을 누르면 세션이 삭제되고 루트가 항목으로 재설정됩니다.

그러나 사용자가 로그인하면 앱의 라우터 (예 : test1)에있는 모듈 중 하나를 클릭하고 THEN이 로그 아웃하면 다음 오류가 표시됩니다. ERROR [app-router] Error : 경로를 찾을 수 없음 :/TEST1

I했습니다 시도 :
1) 루트를 설정하기 전에 라우터를 재설정 (예 this.router.reset())
2) 즉, this.router (루트로 설정하기 전에 집으로 이동. navigate (''))
3) 대답은 다음에서 제안되었습니다.
Aurelia router not working when resetting root
4) 답변 제안 여기에 :
Aurelia clear route history when switching to other app using setRoot
근본적으로 작동하지 않으면 코드 재구성을 해줘서 기쁩니다.

답변

0

잘 모르겠지만이 버그는 과거에는 수정되었지만 어떤 이유로 다시 돌아 왔다고 생각합니다. 나는 조사하려고 노력할 것이다.

해결책으로 두 라우터에서 mapUnknownRoutes을 사용하여 사용자를 원하는 경로로 리디렉션 할 수 있습니다.예를 들어 :

로그인 라우터

configureRouter(config, router) { 
     config.title = "Super Secret Project"; 
     config.map([ 
      { route: ["","login"], name: 'login', moduleId: "./login", nav: true, title: "Beginscherm" }, 
     ]); 

     this.router = router;  

     //default route, to avoid the "route not found error" 
     config.mapUnknownRoutes(instruction => { 
     return './login'; 
     }); 
    } 

공인 라우터

configureRouter(config, router) { 
     config.title = "Super Secret Project"; 
     config.map([ 
      { route: [ '', 'screen-1'], moduleId: "./screen-1", nav: true, title: "Beginscherm" }, 
      { route: 'screen-2', name:'screen-2', moduleId: "./screen-2", nav: true, title: "Beginscherm" } 
     ]); 

     //default route, to avoid "route not found" error 
     config.mapUnknownRoutes(instruction => { 
     return './screen-1'; 
     }); 

     this.router = router;   
    } 

실행 예를 https://gist.run/?id=c3990aa3a5cbe22dc05bce2fdda0269a

는 Plunker를 사용하지 않는, 아주 느린하시기 바랍니다. 대신 GistRun을 사용하십시오 :)

+0

감사합니다 Fabio - 확실히 Plunker를 통해 GistRun을 사용합니다! – Naadof