Angular 7无法启动导航,看不到任何错误。有什么问题的提示吗?

时间:2019-06-19 16:15:10

标签: angular routing zone

我有一个Angular 7应用程序,可在其中导航到一个链接,例如eligibility / 1,它没有问题,并且网络标签显示了出站请求。页面呈现后,尝试导航到eligibility / 2(通过链接单击)的尝试将不会发送出站请求。

路由器跟踪显示如下:

Router Trace

这是路由器导航调用之后的Javascript。请注意,返回到temp的Prom表示区域状态为Null,值的值为Array(0)。

这是区域问题吗?请注意,也没有控制台错误。

After Navigate Call

3 个答案:

答案 0 :(得分:1)

如果在组件初始化中仅发生传出呼叫,则我不希望网络选项卡中有任何东西。 Angular应用程序是SPA,处理eligibility网址的组件很可能仅创建一次,然后在每次后续导航时从内存中加载,直到被销毁。因此,如果您希望每次导航都执行某些操作,则必须订阅导航事件并在那里进行工作。

我有一个简单的routing example,听起来像您所描述的一样。希望有帮助。

答案 1 :(得分:1)

为了在导航到同一网址时刷新页面,必须使用以下方式配置 RouterModule

@ngModule({
 imports: [RouterModule.forRoot(routes, {onSameUrlNavigation: ‘reload’})],
 exports: [RouterModule],
 })

这将改变您应用程序的整体行为,因此最好订阅 ActivatedRoute params 参数:

this.route.params.subscribe((params) => {
  console.log(params);
  console.log(this.route.snapshot.data);
});

答案 2 :(得分:0)

Angular默认情况下不会刷新已经加载的组件。但是该行为可以被覆盖,如下所示。

 // Browser is already on /pathName/5102 
 // We see the proper display which means
 // our router paths are correct.
 // And now we attempt to go to a new path.

 let newLocation = `/pathName/5110`;
 // override default re use strategy
 this.router
    .routeReuseStrategy
    .shouldReuseRoute = function () {
        return false;
 };
 this.router
   .navigateByUrl(newLocation)
   .then(
   (worked) => {
     // Works only because we hooked
     // routeReuseStrategy.shouldReuseRoute 
     // and explicitly told it don't reuse
     // route which forces a reload.
     // Otherwise; the url will change but new
     // data will not display!
   },
   (error) => {
    debugger;
    }
 );