gpt4 book ai didi

Angular 11 : NullInjectorError: No provider for AssetResolver_Factory! 即使使用@Injectable 并在 App.module 中提供

转载 作者:行者123 更新时间:2023-12-05 03:45:16 24 4
gpt4 key购买 nike

我只是想向我的 Angular 应用程序添加一个解析器,但我收到了 NullInjectorError: No provider for AssetResolver_Factory! 错误。

我为提供程序数组尝试了很多不同的选项,但没有任何效果。解析器在 root 中提供,我看过的每个 SO 问题都说在 root 中使用 @Injectable() 提供它,或者将它添加到 app.module 中的 providers 数组

Angular 版本 11.0.1

我已经尝试过 providers: [AssetResolver]

我试过 providers: { provide: MatDialogRef, useValue: {}, AssetResolver }

我试过 providers: [{ provide: MatDialogRef, useValue: {}}, { provide: AssetResolver, useValue: {} }]

没有任何作用。

Angular CLI 生成的标准解析器,未更改

import { Injectable } from '@angular/core';
import {
Router, Resolve,
RouterStateSnapshot,
ActivatedRouteSnapshot
} from '@angular/router';
import { Observable, of } from 'rxjs';

@Injectable({
providedIn: 'root'
})
export class AssetResolver implements Resolve<boolean> {
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
return of(true);
}
}

应用程序模块.ts

@NgModule({
declarations: [
//decs
],
imports: [
//imports
],
providers: [{
provide: MatDialogRef,
useValue: {},
}, AssetResolver],
bootstrap: [AppComponent]
})
export class AppModule { }

应用程序路由

const routes: Routes = [
{
path: '',
component: HomeComponent
},
{
path: 'wizard',
component: WizardComponent,
resolve: AssetResolver
}
];

@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }

最佳答案

在 App.routing 中,'resolve' 需要一个数组。这:解析:AssetResolver应该是:resolve: [AssetResolver]

关于Angular 11 : NullInjectorError: No provider for AssetResolver_Factory! 即使使用@Injectable 并在 App.module 中提供,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65871140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com