首页 > 其他 > 详细

Angular 调用服务逻辑

时间:2021-02-25 10:04:10      阅读:30      评论:0      收藏:0      [点我收藏+]

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));

 

Angular 调用服务逻辑

原文:https://www.cnblogs.com/starof/p/14439283.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!