Aurelia seroot在主页中工作,但在子页面中不起作用
Aurelia setRoot works when in homepage but not in a child page
摘要:
作品
1)登录
2)看到主页test1按钮和注销按钮
3)按注销
4)退出登录,进入登录页面
不工作
1)登录
2)看到主页test1按钮和注销按钮
3)按test1
4)被带到test1页
5)按注销
我已经把我的代码减少到我正在挣扎的位,并制作了一个plunker,然而plunker不喜欢我正在使用的注入标签,因此不渲染。你仍然可以看到代码布局(如果有人能解决注入问题,那将是了不起的)。
砰砰作响:http://embed.plnkr.co/V5IoGqDfmo1djd3kW6bZ/
这个想法是入口模块有一个只有两条路由的路由器-登录和密码重置(将密码重置从plunker中取出作为无关的)。当用户登录时,我们将root设置为应用,它有另一个路由器,只有登录的人才能访问。
一旦登录,按下注销按钮将破坏会话并将根重置为入口。
然而,如果用户登录,点击应用路由器中的一个模块(例如test1),然后点击退出,我们会得到错误: error [app-router] error: Route not found:/test1
我试过:
1)在设置根节点之前重置路由器(即this.router.reset())
2)在设置为root之前导航到home(即this.router.navigate("))
3)这里建议的答案:
复位根时Aurelia路由器不工作
4)这里建议的答案:
使用seroot切换到其他应用程序时清除路由历史记录
任何建议将是感激的,我很高兴重构代码,如果它根本不会工作。
我不确定,但我认为这是一个错误,在过去被修复,但由于某种原因,它现在回来了。我去调查一下。
作为一种解决方案,您可以在两个路由器中使用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,它很慢。使用gistron代替:)
- JavaScript链接在点击时不起作用;函数在页面加载时工作
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- Windows.Open 在 window.Location 工作时不起作用
- 带有向下钻取的 Amchart 图表工作正常,但“后退”按钮不起作用
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- 意思是.js - 登录后重定向用户 - 在本地工作,但在部署时不起作用
- .split() 数据属性在应该工作的时候不起作用
- jQuery选择器在脚本中不起作用,但在控制台中工作
- 在键上验证正在工作,但在按键时它不起作用
- addEventListener 在 Javascript 中不起作用,但 jQuery Click 正在工作
- 表单验证在 HTML 中工作的 Visualforce 中不起作用
- 代码在jsfiddle中工作,但在本地服务器中不起作用
- 在页面中使用了两次多个图像上传,但第一个正在工作,另一个不起作用
- 为什么我的左拖动/滑块工作,但右拖动/滑块不起作用
- 对链接的 svg 进行动画处理不起作用;内联时工作正常
- jQuery SlideToggle() 在 FireFox 中不起作用,在 Chrome 中工作
- Ajax load在chrome中不起作用,而在Fire fox中工作
- Javascript不起作用,但当放置断点并从chrome调试器工具中单击文件时,它可以正常工作
- EventSource onmessage()在onopen()和oneror()正常工作的地方不起作用
- 如果我在其中使用alert,Javascript代码就可以工作,否则它'It’不起作用