Estou com erro no momento de realizar a injeção no PhotoListResolver. Tentei de várias maneiras e não consigo resolver o problema.
Link do projeto no github: https://github.com/andrelsa/alurapic
core.js:1449 ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[PhotoListResolver]:
StaticInjectorError(Platform: core)[PhotoListResolver]:
NullInjectorError: No provider for PhotoListResolver!
Error: StaticInjectorError(AppModule)[PhotoListResolver]:
StaticInjectorError(Platform: core)[PhotoListResolver]:
NullInjectorError: No provider for PhotoListResolver!
at _NullInjector.get (core.js:1003)
at resolveToken (core.js:1301)
at tryResolveToken (core.js:1243)
at StaticInjector.get (core.js:1111)
at resolveToken (core.js:1301)
at tryResolveToken (core.js:1243)
at StaticInjector.get (core.js:1111)
at resolveNgModuleDep (core.js:10896)
at NgModuleRef_.get (core.js:12129)
at PreActivation.getToken (router.js:4026)
at resolvePromise (zone.js:831)
at resolvePromise (zone.js:788)
at eval (zone.js:892)
at ZoneDelegate.invokeTask (zone.js:423)
at Object.onInvokeTask (core.js:4751)
at ZoneDelegate.invokeTask (zone.js:422)
at Zone.runTask (zone.js:195)
at drainMicroTaskQueue (zone.js:601)
AppRoutingModule:
import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {PhotoListComponent} from './photos/photo-list/photo-list.component';
import {PhotoFormComponent} from './photos/photo-form/photo-form.component';
import {NotFoundComponent} from './errors/not-found/not-found.component';
import {PhotoListResolver} from './photos/photo-list/photo-list.resolver';
const routes: Routes = [
{
path: 'user/:userName',
component: PhotoListComponent,
resolve: {
photos: PhotoListResolver
}
},
{
path: 'p/add', component: PhotoFormComponent
},
{
path: '**', component: NotFoundComponent
},
];
@NgModule({
imports: [
RouterModule.forRoot(routes)
],
exports: [
RouterModule
]
})
export class AppRoutingModule {
}
PhotoListComponent:
import {Component, OnInit} from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import {Photo} from '../photo/photo';
@Component({
selector: 'app-photo-list',
templateUrl: './photo-list.component.html',
styleUrls: ['./photo-list.component.css']
})
export class PhotoListComponent implements OnInit {
photos: Photo[] = [];
filter: string = '';
constructor(private activatedRoute: ActivatedRoute) {
}
ngOnInit(): void {
this.photos = this.activatedRoute.snapshot.data['photos'];
}
}
PhotoListResolver:
import {Injectable} from '@angular/core';
import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router';
import {Observable} from 'rxjs/Observable';
import {PhotoService} from '../photo/photo.service';
import {Photo} from '../photo/photo';
@Injectable()
export class PhotoListResolver implements Resolve<Observable<Photo[]>>{
constructor(private service: PhotoService) {}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Photo[]> {
const userName = route.params.userName;
return this.service.listFromUser(userName);
}
}