在Angular中,Resolver是用于在路由导航之前获取数据的一种机制。如果你遇到了"Angular Resolver不起作用,没有为()提供者"的问题,可能是由于以下原因:
providers
属性来提供Resolver,例如:import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { MyResolver } from './my-resolver';
const routes: Routes = [
{
path: 'example',
component: ExampleComponent,
resolve: {
data: MyResolver
}
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
providers: [MyResolver]
})
export class AppRoutingModule { }
resolve
属性来指定Resolver提供的数据,例如:const routes: Routes = [
{
path: 'example',
component: ExampleComponent,
resolve: {
data: MyResolver
}
}
];
import { Injectable } from '@angular/core';
import { MyService } from './my-service';
@Injectable()
export class MyResolver implements Resolve {
constructor(private myService: MyService) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {
// 使用myService获取数据
}
}
请根据你的具体情况检查上述解决方法,并确保正确配置Resolver提供者和使用它的组件的路由配置。