【问题标题】:aspnetcore-spa routing no provideraspnetcore-spa 路由没有提供者
【发布时间】:2017-07-29 06:59:08
【问题描述】:

我正在使用带有 angular 2 的 yoeman aspnetcore-spa 模板。

基本上有3个文件:

  • app.module.client.ts
  • app.module.server.ts
  • app.module.shared.ts

我已将我的服务放入 app.module.client.ts 的提供商中,然后在 app.module.shared.ts 中添加了我的路由。这一切都很好,我可以导航到它,但是当我尝试用我的新路径替换 redirectTo 时。此时仍然可以,但是当我从localhost:5000 进入页面时,控制台会发出错误提示:

fail: Microsoft.AspNetCore.NodeService[0] blah bla Uncaught (in promise): Error: No provider for NameService!

还有一些at injectionError

如果我更改redirectTo: 'home',那么它可以工作,我可以导航到我的页面。更糟糕的是,当我拥有{ useHash: true } 时,它不会停止在终端中记录错误。

我尝试使用路由器导航到我在HomeComponentngOnInit() 中的页面,哪种方法可行,但是当我从localhost:5000 进入页面时仍然有问题。我没有尝试过用我的替换HomeComponent

我真正想要的是了解正在发生的事情。老实说,我是这个模板的新手,通常只有一个app.module.ts。这个模板中有一些我不明白的地方。请帮忙!

【问题讨论】:

  • 您似乎缺少在您的AppModule 的提供者数组中添加NameService
  • 我在帖子中提到我已经将我的服务放在 app.module.client.ts 中。如果我不这样做,我一开始就不会工作。再清楚一次。这是第一次渲染页面时服务失败的情况。当我使用我的应用程序从 localhost:5000 进入时,重定向到我的页面。如果我重定向到默认主页然后导航到我的页面,那么它将起作用。我确信这与依赖注入无法正常工作有关,无论是我还是框架或模板。

标签: asp.net angular typescript asp.net-core routing


【解决方案1】:

我想出了一个解决办法。这个模板没有通常的 UniversalModule,可能是那里出了问题。我不确定这是否是解决它的最佳方法,但我的解决方法是:

  1. 也将我的服务添加到app.module.server.ts。这是因为我认为主页首先是在服务器上呈现的。

  2. 在我的服务中注入 ORIGIN_URL。我想我可能不得不做与app.module.client.ts 类似的事情,它奏效了。所以,在我的服务的构造函数中,我添加了@Inject('ORIGIN_URL') private _originUrl: string,在我的http方法中,我在我的url前面加上了this._originUrl

【讨论】:

    猜你喜欢
    • 2020-06-09
    • 2023-03-24
    • 2016-12-22
    • 2016-05-14
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    相关资源
    最近更新 更多