Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自RESTAPI的Aurelia动态路由_Javascript_Routing_Aurelia - Fatal编程技术网

Javascript 来自RESTAPI的Aurelia动态路由

Javascript 来自RESTAPI的Aurelia动态路由,javascript,routing,aurelia,Javascript,Routing,Aurelia,我的处境很棘手。我正在开发一个Aurelia应用程序,它有一些路由,这些路由是根据对API的简单GET请求设置的 工作原理(无API请求,或configureRouter步骤延迟): 导出类MyClass{ 静态注入=[这里有些东西]; 配置路由器(配置,路由器){ this.router=路由器; 让路线=[ {路由:“”,重定向:'landing'}, {route:'landing',name:'landing',moduleId:PLATFORM.moduleName('componen

我的处境很棘手。我正在开发一个Aurelia应用程序,它有一些路由,这些路由是根据对API的简单GET请求设置的

工作原理(无API请求,或
configureRouter
步骤延迟):

导出类MyClass{
静态注入=[这里有些东西];
配置路由器(配置,路由器){
this.router=路由器;
让路线=[
{路由:“”,重定向:'landing'},
{route:'landing',name:'landing',moduleId:PLATFORM.moduleName('components/landing'),title:'landing'},
{route:'pageA',name:'pageA',moduleId:PLATFORM.moduleName('components/pageA'),title:'Page A'},
{route:'pageB',name:'pageB',moduleId:PLATFORM.moduleName('components/pageB'),title:'Page B'}];
配置地图(路线);
}
什么不起作用:

导出类MyClass{
静态注入=[这里有些东西];
配置路由器(配置,路由器){
this.router=路由器;
让路线=[
{路由:“”,重定向:'landing'},
{route:'landing',name:'landing',moduleId:PLATFORM.moduleName('components/landing'),title:'landing'}];
this.routesRepo.get()。然后((数据)=>{
//数据是数组表示的
//[{route:'pageA',name:'pageA',moduleId:PLATFORM.moduleName('components/pageA'),title:'Page A'},
//{route:'pageB',name:'pageB',moduleId:PLATFORM.moduleName('components/pageB'),title:'Page B'}];
concat(数据);
配置地图(路线);
}
});
还有什么不起作用(简单超时):

导出类MyClass{
静态注入=[这里有些东西];
配置路由器(配置,路由器){
this.router=路由器;
let routes=[];
设置超时(()=>{
海螺(
[{路由:'',重定向:'landing'},
{route:'landing',name:'landing',moduleId:PLATFORM.moduleName('components/landing'),title:'landing'},
{route:'pageA',name:'pageA',moduleId:PLATFORM.moduleName('components/pageA'),title:'Page A'},
{route:'pageB',name:'pageB',moduleId:PLATFORM.moduleName('components/pageB'),title:'Page B'}]);
配置地图(路线);
}, 1);
}
为什么在promise中添加
config.map(routes)
会把一切都搞糟?那么怎么做呢?
routes
数组拥有它所需要的一切,并且在到达
config.map(routes)
之前已经正确设置好了。我现在得到的只是我的自定义404页面


谢谢!

我猜问题在于,在第二个和第三个示例中,configureRouter在对config.map的调用完成之前返回。这是因为在第二个示例中,进程队列中有一个承诺,而在第三个示例中,进程队列中有一个超时。我的最佳猜测是,您应该返回一个期望api调用实现的承诺。这样,framework“知道”有一个即将到来的承诺。祝你好运,尝试从
configureRouter
返回承诺。这就成功了!谢谢@Cristiánormazabal。我想问题是,在第二个和第三个示例中,configureRouter在调用config.map完成之前返回。这是因为在第二个示例中有一个承诺,在第三个示例中有一个超时在进程队列中。我的最佳猜测是,您应该返回一个承诺,期望对api的调用能够实现。这样,框架“知道”有一个即将到来的承诺。祝您好运,尝试从
configureRouter
返回该承诺。这就成功了!谢谢@Cristiánormazabal。