Angular에서 차트를 완전히 제거하는 방법

아세 지

홈 페이지에 여러 차트가 있고 차트 이름으로 필터링 할 수있는 검색 상자가 있습니다.

특정 차트를 필터링 할 때 해당 차트가 필터링되기 시작하고 UI에서 사라지는 동안 해당 차트를 삭제할 수 있지만, 어떤 이유로 내가 모든 텍스트를 필터링 해제 / 제거하면 나머지 차트와 함께 홈 페이지에 방금 삭제 한 차트가 여전히 나타납니다. 검색 창.

백엔드에서 삭제되었지만 삭제 된 차트는 여전히 프런트 엔드에 나타납니다. 또한 웬일인지 방금 삭제 한 것을 다시 검색 할 수 있지만 이번에는 404를 던지기 때문에 다시 삭제할 수 없습니다.

브라우저를 새로 고치면 완전히 사라집니다. 검색 상자에서 필터링을 해제 한 후에도 차트가 사라지도록하는 방법에 대한 제안.

HTML

//Imported this component to display a list of chart
<ng-container *ngFor="let chart of charts">
   <mc-chart-list [chart]="chart" [wsType]="workspace.type" (removeFromList)="onRemoveFromList($event)"></mc-chart-list>
</ng-container>

//I use this searchbar to filter by the name of the chart
 <input class="input" matInput name="query" [formControl]="query" placeholder="Filter Workspace">

TS

@Input() chart: Chart;
workspace: Workspace;
private death$: Subject<void> = new Subject();
query: FormControl = new FormControl();
charts: Chart[] = [];
searchText: string;


ngOnInit(): void {
    this.activatedRoute.paramMap.pipe(takeUntil(this.death$)).subscribe((paramMap) => {
      const guid = paramMap.get('guid');

      if (guid) {
        this.workspaceService.getWorkspace(guid, this.isPublished).subscribe(ws => {
          this.workspace = ws;
        }, () => this.loading = false);
      }
    })

//For search bar
    this.query.valueChanges
      .pipe(takeUntil(this.death$))
      .subscribe((value: string) => {
        this.search(value);
      });
}
search(searchText: string){
    // reset
    searchText = searchText.toLowerCase();
    if (!searchText || searchText.length == 0) {
      this.charts = this.workspace.charts;
    }
    // search
    else {
      this.charts = this.charts.filter(chart => chart.name.toLowerCase().indexOf(searchText) >= 0);
    }
  }

onRemoveFromList(id: number) {
    const index = this.charts.findIndex(e => e.id === id);
    if (index >= 0) {
      this.charts.splice(index, 1);
}

검색 기능 내에서 this.ngOnIt () 할 수 있지만 이것이 최선의 방법이라고 생각하지 않으므로 누군가이 문제를 해결할 수 있다면 정말 감사하겠습니다.

Hansand

당신의 workspace.charts는 모든 차트를 가지고 charts있습니다 workspace.charts. 당신 . 에서 값을 할당하고 있습니다 . onRemoveFromList함수에서 당신은 그것을 . 에서만 제거 chart하지만 workspace.charts여전히 제거 된 값을 가지고 있습니다. 그런 다음 검색을 재설정 할 때마다 제거 된 값이로 들어가는 charts이유입니다. 제거 된 차트를 참조하십시오.

해결책 : 당신 onRemoveFromList의 차트 workspace.charts제거하십시오 .

  onRemoveFromList(id: number) {
    const index = this.charts.findIndex(e => e.id === id);
    if (index >= 0) {
      this.charts.splice(index, 1);
      this.workspace.charts = this.workspace.charts.filter(e => e.id !== id);
    }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Ubuntu에서 virsh를 완전히 제거하는 방법

분류에서Dev

Ubuntu에서 virsh를 완전히 제거하는 방법

분류에서Dev

R 통계 프로그램에서 renv를 완전히 제거하는 방법

분류에서Dev

Windows 7에서 프린터를 완전히 제거하는 방법

분류에서Dev

CentOS 7에서 MariaDB 5.5를 완전히 제거하는 방법 (구성 포함)

분류에서Dev

rsync 공유에서 디렉토리를 완전히 제거하는 방법

분류에서Dev

rsync 공유에서 디렉토리를 완전히 제거하는 방법

분류에서Dev

HTML 페이지에서 표 테두리를 완전히 제거하는 방법

분류에서Dev

SUSE : 컴퓨터에서 apache2를 완전히 제거하는 방법

분류에서Dev

Ubuntu 18.04에서 Chromium 브라우저를 완전히 제거하는 방법

분류에서Dev

Angular Js에서 완전히로드 된 뷰를 찾는 방법

분류에서Dev

Ubuntu 14.04에서 tonido를 제거 (완전히 제거)하는 방법은 무엇입니까?

분류에서Dev

소프트웨어를 완전히 제거하는 방법

분류에서Dev

OS X에서 R을 완전히 제거하는 방법

분류에서Dev

Vue에서 전역 구성 요소를 완전히 제거하는 방법은 무엇입니까?

분류에서Dev

Chromebook에서 Chrome OS를 제거하고 Ubuntu 16.04를 완전히 (Crouton이 아님) 설치하는 방법

분류에서Dev

파이썬을 사용하여 텍스트 파일에서 "\ n"을 완전히 제거하는 방법

분류에서Dev

Acer Chromebook에서 Linux를 완전히 제거하고 다시 설치하는 방법

분류에서Dev

64 비트 창에서 32 비트 지원을 완전히 제거하는 방법이 있습니까?

분류에서Dev

Macbook에서 jdk 1.8을 완전히 제거하는 방법은 무엇입니까? Scala Webapps 프로젝트

분류에서Dev

ubuntu-restricted-extras를 완전히 제거하는 방법

분류에서Dev

ubuntu-restricted-extras를 완전히 제거하는 방법

분류에서Dev

QEMU를 완전히 제거하는 방법

분류에서Dev

VLC Player를 완전히 제거하는 방법?

분류에서Dev

모노를 완전히 제거하는 방법?

분류에서Dev

calabash-ios / robotframework를 완전히 제거하는 방법

분류에서Dev

PHP를 완전히 제거하는 방법?

분류에서Dev

우분투 야 키티를 완전히 제거하는 방법

분류에서Dev

증기를 완전히 제거하는 방법?

Related 관련 기사

  1. 1

    Ubuntu에서 virsh를 완전히 제거하는 방법

  2. 2

    Ubuntu에서 virsh를 완전히 제거하는 방법

  3. 3

    R 통계 프로그램에서 renv를 완전히 제거하는 방법

  4. 4

    Windows 7에서 프린터를 완전히 제거하는 방법

  5. 5

    CentOS 7에서 MariaDB 5.5를 완전히 제거하는 방법 (구성 포함)

  6. 6

    rsync 공유에서 디렉토리를 완전히 제거하는 방법

  7. 7

    rsync 공유에서 디렉토리를 완전히 제거하는 방법

  8. 8

    HTML 페이지에서 표 테두리를 완전히 제거하는 방법

  9. 9

    SUSE : 컴퓨터에서 apache2를 완전히 제거하는 방법

  10. 10

    Ubuntu 18.04에서 Chromium 브라우저를 완전히 제거하는 방법

  11. 11

    Angular Js에서 완전히로드 된 뷰를 찾는 방법

  12. 12

    Ubuntu 14.04에서 tonido를 제거 (완전히 제거)하는 방법은 무엇입니까?

  13. 13

    소프트웨어를 완전히 제거하는 방법

  14. 14

    OS X에서 R을 완전히 제거하는 방법

  15. 15

    Vue에서 전역 구성 요소를 완전히 제거하는 방법은 무엇입니까?

  16. 16

    Chromebook에서 Chrome OS를 제거하고 Ubuntu 16.04를 완전히 (Crouton이 아님) 설치하는 방법

  17. 17

    파이썬을 사용하여 텍스트 파일에서 "\ n"을 완전히 제거하는 방법

  18. 18

    Acer Chromebook에서 Linux를 완전히 제거하고 다시 설치하는 방법

  19. 19

    64 비트 창에서 32 비트 지원을 완전히 제거하는 방법이 있습니까?

  20. 20

    Macbook에서 jdk 1.8을 완전히 제거하는 방법은 무엇입니까? Scala Webapps 프로젝트

  21. 21

    ubuntu-restricted-extras를 완전히 제거하는 방법

  22. 22

    ubuntu-restricted-extras를 완전히 제거하는 방법

  23. 23

    QEMU를 완전히 제거하는 방법

  24. 24

    VLC Player를 완전히 제거하는 방법?

  25. 25

    모노를 완전히 제거하는 방법?

  26. 26

    calabash-ios / robotframework를 완전히 제거하는 방법

  27. 27

    PHP를 완전히 제거하는 방법?

  28. 28

    우분투 야 키티를 완전히 제거하는 방법

  29. 29

    증기를 완전히 제거하는 방법?

뜨겁다태그

보관