aspnetcore-spa路由没有提供商

时间:2017-07-29 06:59:09

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

我使用带有角度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 }它不会在终端中停止记录错误时。

我已尝试使用路由器导航到HomeComponent ngOnInit()中的某个页面,但是当我从localhost:5000进入该页面时仍然存在问题。我没有尝试过用我的替换HomeComponent

我真正想要的是了解发生了什么。老实说,我是这个模板的新手,通常只有一个app.module.ts。这个模板中有些东西我不明白。请帮助!

1 个答案:

答案 0 :(得分:0)

我已经找到了解决方法。这个模板没有通常的UniversalModule,可能是出错的地方。我不确定这是解决问题的最佳方法,但我的工作是:

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

  2. 在我的服务中注入ORIGIN_URL。我以为我可能要对app.module.client.ts做类似的事情并且它有效。所以,在我的服务的构造函数中,我添加了@Inject('ORIGIN_URL') private _originUrl: string,在我的http方法中,我在我的网址前加上this._originUrl