【问题标题】:router.navigate(url) doesn't load the component but typing the url directly into the browser doesrouter.navigate(url) 不加载组件,但直接在浏览器中输入 url
【发布时间】:2020-12-14 22:25:45
【问题描述】:

我正在尝试通过单击这样的 div 来加载 Angular 8 组件:

  showMovie(movieId) {
    this.router.navigate([`/movie/${movieId}`]);
  }

这曾经有效,在我在netlify 上部署的版本中它仍然有效,但是当我尝试从localhost 执行此操作时,它不再有效。如果我直接在浏览器中输入网址,它就可以正常工作。

【问题讨论】:

  • 控制台有错误吗?
  • 是的,一堆。它们中的大多数与角度 html 无法正确加载的数据有关。但这似乎不是问题,因为即使我清空 html 所以它不需要该数据,它也不会加载。控制台中似乎有趣的一件事是:null:1 GET localhost:4200/null 404 (Not Found)。
  • 即使我直接在浏览器中输入 url 并且一切都完美加载,也会显示此错误。
  • 你能直接分享你输入的url吗,很明显它可能是个假人。链接的组件是否在延迟加载的模块中?
  • 像这样尝试一次this.router.navigate(['/movie'+movieId])。还要检查你在方法中得到正确的movieId

标签: javascript angular routes components


【解决方案1】:

尝试使用这段代码,使用queryParams,我不确定语法:

this.router.navigate(['/movie'], {queryParams: {movieId: movieId }})

【讨论】:

    【解决方案2】:

    你可以试试这个:- 首先导入路由器

    import { ActivatedRoute, Router } from '@angular/router';
    

    在构造函数中声明路由器:

    private router: Router,
    

    那么,

    this.router.navigate(['/movie', movieId]);
    

    谢谢你

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 2018-02-21
      • 2014-04-02
      • 2015-01-15
      • 2019-10-29
      相关资源
      最近更新 更多