我已经搜索了很多有关此错误的信息,没有什么有用的,这种角度的错误通常会告诉您缺少提供程序的对象是什么,但是这次给出的是StaticInjectorError(AppModule)[[ object Object ]],所以我无法不知道。
在我的应用程序中,我有单独的模块:
他们每个人都有一个路由模块。的确,我正在使用lazyloading在模块之间进行路由。帐户路由模块包含:
const routes: Routes = [
{
path: '',
component: AccountsComponent,
canActivate: [AuthGuardService],
resolve: {
data:{
AccountsResolver
}
}
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
providers: [
AccountsResolver
]
})
export class AccountsRoutingModule {
}
Run Code Online (Sandbox Code Playgroud)
当我访问accountscomponent时,出现以下错误:
ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[[object Object]]:
StaticInjectorError(Platform: core)[[object Object]]:
NullInjectorError: No provider for [object Object]!
Error: StaticInjectorError(AppModule)[[object Object]]:
StaticInjectorError(Platform: core)[[object Object]]:
NullInjectorError: No provider for [object Object]!
at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (vendor.js:53611)
at resolveToken (vendor.js:53850)
at tryResolveToken (vendor.js:53795)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (vendor.js:53690)
at resolveToken (vendor.js:53850)
at tryResolveToken (vendor.js:53795)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (vendor.js:53690)
at resolveNgModuleDep (vendor.js:60745)
at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (vendor.js:61433)
at resolveNgModuleDep (vendor.js:60745)
at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (vendor.js:53611)
at resolveToken (vendor.js:53850)
at tryResolveToken (vendor.js:53795)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (vendor.js:53690)
at resolveToken (vendor.js:53850)
at tryResolveToken (vendor.js:53795)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (vendor.js:53690)
at resolveNgModuleDep (vendor.js:60745)
at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (vendor.js:61433)
at resolveNgModuleDep (vendor.js:60745)
at resolvePromise (polyfills.js:3136)
at resolvePromise (polyfills.js:3093)
at polyfills.js:3195
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (polyfills.js:2743)
at Object.onInvokeTask (vendor.js:56325)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (polyfills.js:2742)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (polyfills.js:2510)
at drainMicroTaskQueue (polyfills.js:2917)
defaultErrorLogger @ vendor.js:54201
Run Code Online (Sandbox Code Playgroud)
但是当我在解析中注释掉AccountsResolver时,组件将正常加载而没有任何错误。我不知道错误是由于实现Resolve的AccountsResolver还是其他原因引起的。任何想法将不胜感激。谢谢。
我知道答案有点晚了,但是如果有人遇到这个问题:我有完全相同的错误消息,这是由于格式错误而导致的。
const routes: Routes = [
{
path: '',
component: SomeComponent,
resolve: SomeResolveService
}
];
Run Code Online (Sandbox Code Playgroud)
但这应该像:
const routes: Routes = [
{
path: '',
component: SomeComponent,
resolve: {someProperty: SomeResolveService}
}
];
Run Code Online (Sandbox Code Playgroud)
所以我想删除多余的对象应该可以解决问题:
resolve: {
data:AccountsResolver
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1826 次 |
| 最近记录: |