Durandal 하위 라우팅을 구성하려고합니다. 부모 라우터가 담당하는 마녀를위한 공개 섹션이 있습니다.상대 모듈 ID가있는 Durandal 하위 라우터 설정
//main router
return router.map(config.publicRoutes)
.buildNavigationModel()
.mapUnknownRoutes('account/login', '#login/')
.activate();
//public routes
[{ route: 'login', title: 'Login', moduleId: 'account/login', nav: false, hash: '#login/' },
{ route: 'register', title: 'Register', moduleId: 'account/register', nav: false, hash: '#register/' },
{ route: 'reset-password', title: 'Reset password', moduleId: 'account/reset-password', nav: false, hash: '#reset-password/' },
{ route: 'private*details', moduleId: 'private/private-shell', title: 'Application', nav: true, hash: '#private/' }
];
그러면 하위 라우터가 개인 섹션을 담당해야합니다. 사용자가 로그인 한 후 나는 아이 라우터에 대한 경로를 매핑하고있는 사용자 유형 (관리자, 사용자) 내가 적절한 경로와 자식 라우터를 활성화하고에 따라 :.
//initializing the router from the login view
var promise = Q.all([private_shell.initRoutes(isAdmin || true)]);
return promise.then(navigate("#private/silos"));
// child router in private-shell
var privateRouter = router.createChildRouter();
var routes = [];
//method to initialize the proper routes after login
var initRoutes = function (isAdmin) {
privateRouter.reset().makeRelative({
moduleId: 'viewmodels/private/',
fromParent: true
});
console.log(privateRouter);
return privateRouter.map(isAdmin ? config.adminRoutes : config.userRoutes).buildNavigationModel();
};
처음 할 때 라우터 모두 잘 작동 초기화하지만 메인 라우터 (로그인보기)로 돌아가고 다른 로그인이 수행되면 하위 라우터는 상대 moduleId를 두 번 추가합니다. 경로가/오른쪽이다/개인 행 '하지만 제 시간의 moduleID의 'viewmodels가 처음 로그인하면
는 로그인은 라우트가 하위 라우터 초기화의 moduleID의 'viewmodels/개인/viewmodels/개인/경로 '.
GET http://localhost:7777/App/viewmodels/private/viewmodels/private/silos.js 404 (Not Found)
그것이 있어야 할 때 :
GET http://localhost:7777/App/viewmodels/private/silos.js
나는이 발생할 수 있습니다 무엇을 식별 할 수 없습니다. 어떤 도움이 필요합니까?
경로 이름이 올바르게 구성되었습니다. 그들의 모듈이 문제입니다. moduleId는 childRouter를 초기화 할 때마다 라우터 설정 ('childRouter.makeRelative'를 호출 할 때)에서 moduleId의 경로로 가져옵니다. 'http : // localhost : 7777/App/viewmodels/private/viewmodels/private/silos.js 404 (찾을 수 없음)' – razvanz