https://github.com/seammour/monapp
This project was generated with Angular CLI version 10.2.0.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.
ng new awesome-components --style=scss --skip-tests=true --routing
ng add @angular/material
ng g m core
ng g m shared
ng g m social-media --routing
ng g c core/components/header
Le flag --routing permet d'ajouter automatiquement un module de routing depuis le CLI.
ng add permet d'ajouter certaines bibliothèques comme Angular Material à votre projet Angular.
Pour utiliser un component Material, il faut importer le module correspondant.
Exporter des éléments depuis un module les met à disposition de tout autre module qui viendrait l'importer – par exemple, exporter MatToolbarModule dans SharedModule.
preparer une methode du service qui renvoi un observable
getPosts(): Observable<Post[]> {
return this.http.get<Post[]>(`${environment.apiUrl}/posts`);
}
Implementer le resolver comme ceci
- considerer comme un service qui utiliser le service precedemment preparer
- dans notre cas nous n'utiliserons pas les deux parametre de la methode resolve
@Injectable()
export class PostsResolver implements Resolve<Post[]> {
constructor(private postService: PostService){}
resolve( route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Post[]>
{
return this.postService.getPosts();
}
}
posts$! : Observable<Post[]>;
constructor(private route: ActivatedRoute) { }
ngOnInit(): void {
this.posts$ = this.route.data.pipe(
map(data => data['posts'])
);
}
<h2>Posts</h2>
<app-post-list-item *ngFor="let post of posts$ | async" [post]="post">
</app-post-list-item>
@Input() post!: Post;
constructor() { }
ngOnInit(): void {
}
<p>{{post.title }}</p>