<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Angular項目Project Service

      建立領域對象并在domain中建立一個index.ts用于組織文件。在index.ts中導出所有的領域對象。

       1,新建project.service,加add方法。

      import { Project } from './../domain';
      import { HttpClient } from '@angular/common/http';
      import { Inject, Injectable } from '@angular/core';
      import { map } from 'rxjs/operators';
      
      @Injectable({
        providedIn: 'root'
      })
      export class ProjectService {
        private readonly domain = 'projects';
        private headers = new Headers({
          'Content-type': 'application/json'
        });
        constructor(private httpClient: HttpClient, @Inject('BASE_CONFIG') private config: any) { }
      
        //POST
        add(project: Project) {
          project.id = undefined;
          const uri = `${this.config.uri}/${this.domain}`;
          return this.httpClient.post(uri, JSON.stringify(project)).pipe(
            map(res => res as Project)
          )
        }
      }

      2,加更新方法

       PUT會全部更新,patch只更新部分屬性。不要圖方便去做方法范圍之外的更新。用一個toUpdate指定只更新這3個屬性。

       //PUT/patch
        update(project: Project): Observable<Project> {
          const uri = `${this.config.uri}/${this.domain}/${project.id}`;
          const toUpdate = {
            name: project.name,
            desc: project.desc,
            coverImg: project.coverImg
          }
          return this.httpClient.patch(uri, JSON.stringify(toUpdate)).pipe(
            map(res => res as Project)
          )
        }

      3,刪除

       project是一個頂級元素,級聯刪除。刪除一個project需要刪除Project,project關聯的所有列表task-list和列表下面的所有任務task。

       json-server會級聯刪除,所以我們刪除列表和它下面的tasks。

      從taskLists數組中得到Observable流。

        //DELETE
        delete(project: Project): Observable<Project> {
          const delTasks$ = from(project.taskLists ? project.taskLists : []).pipe(
            mergeMap(listId => this.httpClient.delete(`${this.config.uri}/taskLists/${listId}`)),
            count()
          );
          const uri = `${this.config.uri}/${this.domain}/${project.id}`;
          return delTasks$.pipe(
            switchMap(_ => this.httpClient.delete(uri).pipe(
              mapTo(project)
            ))
          )
        }

       

       4,get

      //GET
        get(userId: string): Observable<Project[]> {
          const uri = `${this.config.uri}/${this.domain}`;
          return this.httpClient.get(uri, { params: { 'members_like': userId } }).pipe(
            map(res => res as Project[])
          )
        }

       

      posted @ 2021-02-23 08:58  starof  閱讀(136)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品国产亚洲av麻豆特色| 日韩成人午夜精品久久高潮| 2021av在线| 成人欧美日韩一区二区三区| 婷婷色香五月综合缴缴情香蕉| 麻豆国产高清精品国在线| 色欲综合久久中文字幕网| 午夜欧美精品久久久久久久| 狠狠色噜噜狠狠狠狠av不卡| 亚洲熟妇色xxxxx欧美老妇| AV免费播放一区二区三区| 99国精品午夜福利视频不卡99| 亚洲国产精品一二三区| 在线观看热码亚洲av每日更新| 国产一区二区三区18禁| 日本边吃奶边摸边做在线视频 | 欧美性69式xxxx护士| 潮喷无码正在播放| 亚洲综合日韩av在线| 亚洲精品tv久久久久久久久久 | 人妻一区二区三区三区| 精品91在线| 偷炮少妇宾馆半推半就激情| 亚洲国产精品久久久天堂麻豆宅男| 国产AV无码专区亚洲AWWW| 国产成人无码AV大片大片在线观看| 亚洲国产av无码综合原创国产 | 新晃| japanese边做边乳喷| 日韩中文字幕在线不卡一区| 久章草这里只有精品| 中文国产不卡一区二区| 成人国产精品一区二区网站公司| 国产对白叫床清晰在线播放| 亚洲精品久久国产高清小说| 久久人人爽人人爽人人av| 亚洲精品国产中文字幕| 中文激情一区二区三区四区| 亚洲VA欧美VA国产综合| 亚洲AV国产福利精品在现观看| 四虎永久免费精品视频|