0

データをキャッシュしているため、Angular アプリでこの問題が発生しています。onCreate() 関数を使用して何かを追加した後。新しいデータを取得するために、成功したサブスクライブ関数で getAll() 関数を呼び出しました。しかし、私はまだ新しいデータを取得していません。私のサービスのキャッシュデータが原因だと思います。新しいデータがあるかどうか、または既存のデータのキャッシュを修正し、新しいデータがあるときにデータを更新する方法を教えてください。

サービス

getAll() {
    if(!this.materials) {
        this.materials = this.httpClient.get<any>(this.url)
                            .map((response => response))   
                            .publishReplay(1)
                            .refCount();

    }
    return this.materials;
  }

getAll() ts

getAllMaterials() {
    this.subscription = this.materialsService.getAll()
        .subscribe(
          (data:any) => {
            this.materials = data.materials;
            console.log(data);
          },
          error => {
           alert("Error");
           console.log(error);
          });
  }

onCreate() -ts

 onCreateMaterial(form: NgForm){

    const formData = {
      sku: form.value.sku,
      name: form.value.name,
      supplier_id: form.value.supplier,
      price: form.value.price
    }

    this.materialsService.addMaterial(formData)
      .subscribe(
          data => {
            let message = data.message;
            alert(message);
            console.log(data);
            this.modalRef.close();
            this.getAllMaterials();
          },
          error => {
             alert("Error Adding");
             console.log(error);
          });
  }
4

1 に答える 1