1,proejcts初始化赋值不需要了。
projects = [ { id: 1, name: "企业协作平台", desc: "这是一个企业内部项目", coverImg: "assets/images/covers/0.jpg" }, { id: 2, name: "自动化测试项目", desc: "这是一个企业内部项目", coverImg: "assets/images/covers/1.jpg" } ];
在构造函数中赋值。
constructor(private dialog: MatDialog, private cd: ChangeDetectorRef, private projectService: ProjectService) { this.projectService.get("37489e0c-df34-c261-71c4-ce75357e3035").subscribe(projects => this.projects = projects); }
2,装loadsh
npm i --save loadash
npm i --save-dev @types/lodash
private getThumbnails() { return _.range(0, 40).map(i => `/assets/img/covers/${i}_tn.jpg`); }
3, 初始projects为空的问题。
脏值检测
this.projectService.get("37489e0c-df34-c261-71c4-ce75357e3035").subscribe( projects => { this.projects = projects; this.cd.markForCheck(); } );
4,用filter代替 if (!project) return;
dialogRef.afterClosed().subscribe((project) => { if (!project) return; this.projectService.add(project); this.cd.markForCheck(); });
用filter代替
dialogRef.afterClosed().pipe(filter(n => n)).subscribe((project) => { this.projectService.add(project); this.cd.markForCheck(); });
5, subscribe()中返回的还是一个流,
this.projectService.add(project);返回还是流
我们不做subscribe()中的subscribe()。两个流就应该可以合并。
dialogRef.afterClosed() .pipe( filter(n => n), switchMap(v => this.projectService.add(v))) .subscribe(project => console.log(project));
原文:https://www.cnblogs.com/starof/p/14439283.html