여러 확인란으로 필터링하기위한 사용자 지정 파이프를 만드는 방법은 무엇입니까? 각도 4

코디

값이 Dispatched, open 및 closed 인 상태 목록이 있습니다. 확인란을 클릭하면 결과를 필터링하고 싶습니다.

<ion-item *ngFor="let s of appointmentStatus" >
  <ion-checkbox [(ngModel)]="s.checked" (click)="updateFilter(s)"></ion-checkbox>
  <ion-label >{{ s.status }}</ion-label>
</ion-item>

<div *ngFor="let a of todaysAppointments>
//list of appointments goes here

나는 파이프로 이것을 할 방법을 생각해 냈지만 좋은 예를 찾지 못했고 나는 오히려 새롭다. 어떤 도움을 주시면 감사하겠습니다.

if ((appDate.getDay() == currentDate.getDay()) && (appDate.getMonth() == currentDate.getMonth()) && (appDate.getFullYear() == currentDate.getFullYear()) && this.appointments[i].status != 'Pending') {
                this.todaysAppointments.push(this.appointments[i]);
            }
            if ((appDate.getDay() < currentDate.getDay()) && (appDate.getMonth() >= currentDate.getMonth()) && (appDate.getFullYear() >= currentDate.getFullYear()) && this.appointments[i].status != 'Pending') {
                this.upcomingAppointments.push(this.appointments[i]);
            }

따라서 아래에서 수행 한 작업은 단일 어레이 만있을 때 완벽하게 작동합니다. 내 HTML에서 오늘과 예정된 약속으로 나뉘어 있습니다. 그래서 먼저 페이지를로드하고 해당 섹션에 모든 약속을 표시합니다. 그런 다음 확인란으로 필터링하고 싶습니다.

<h2 style="background-color:#387ef5">Today's Appointments</h2>
<div *ngFor="let a of todaysAppointments | filter: searchTerm" (click)="openPage(a)">

<h2 style="background-color:#387ef5">Upcoming Appointments</h2>
<div *ngFor="let a of upcomingAppointments | filter: searchTerm" (click)="openPage(a)">
AJT82

편집하다:

두 개의 배열을 다루기 때문에 구성 요소 파일에 필터 메서드를 사용하는 대신 파이프로 변환 된 원래 답변이 있습니다.

updateFilter(s)필터 값을 추가 또는 제거하려는 경우 메서드를 유지 하거나 클릭 이벤트에 대한 템플릿에서 수행 할 수도 있습니다.

(click)="s.checked ? 
    filterArr.push(s.status) : filterArr.splice(filterArr.indexOf(s.status), 1)

나는 개인적으로 템플릿을 깨끗하게 유지하기 위해 구성 요소에 해당 논리를 갖는 것을 좋아하지만 그것은 전적으로 당신에게 달려 있습니다 :)

그리고 템플릿에서 해당 배열을 파이프에 전달합니다.

<div *ngFor="let a of todaysAppointments | filterPipe: filterArr">

파이프는 다음과 같이 표시됩니다. 여기서 values필터링하려는 args배열은 체크 박스가 선택된 배열입니다. (이름을 재고하고 싶을 것입니다). 파이프를 불결하게 만들어야 변경이 발생할 때마다 발사됩니다.

@Pipe({name: 'filterPipe', pure: false})
export class MyPipe implements PipeTransform {
    transform(values: any, args?: any[]): any[] {
      return values = values.filter(a => {
        return args.length ? args.indexOf(a.status) != -1 : values;
      })      
    }
}

그렇게해야합니다!

데모


원래 답변 :

여기에 맞춤형 파이프가 전혀 필요하지 않을 수도 있습니다. Array.prototype.filter()클릭 이벤트를 사용할 수 있습니다 .

또한 확인란의 선택 여부를 확인하고 선택된 값을 기준으로 필터링해야합니다. 여기에 별도의 배열에 삽입했습니다 filterArr.

따라서 updateFilter(s)메서드 에서 먼저 확인을 수행하고 해당 필터 값을 배열에 푸시하거나 제거합니다. 그런 다음 값으로 필터링하거나 filterArr비어있는 경우 모든 약속을 반환합니다 .

라는 모든 약속을 저장하는 별도의 배열이 allAppointments있으며 여기에서 값을 필터링합니다 todasyAppointments.

updateFilter(appt) {
  if(appt.checked) {
    // checkbox is checked, push to filterArr
    this.filterArr.push(appt.status)
  }
  else {
    // unchecked box, let's remove it from array
    let index = this.filterArr.indexOf(appt.status)
    this.filterArr.splice(index, 1)
  }
  // filter by the values set in filterArr, or if empty, return all appointments
  this.todaysAppointments = this.allAppointments.filter(a => {
    return this.filterArr.length ? 
           this.filterArr.indexOf(a.status) != -1 : this.allAppointments;
  })
}

데모

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

각도를 사용하여 확인한 확인란을 계산하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 각도 지시문을 사용하여 스크립트를로드하는 방법은 무엇입니까?

분류에서Dev

여러 * ngIf를 && 연산자와 결합하고 각도로 사용하는 방법은 무엇입니까?

분류에서Dev

Derby 데이터베이스와 함께 jsf를 사용하여 Google지도에서 다각형을 동적으로 만드는 방법은 무엇입니까?

분류에서Dev

Node Express를 사용하여 각 사용자에 대한 동적 하위 도메인을 만드는 방법은 무엇입니까?

분류에서Dev

Selenium IDE를 사용하여 동적으로 이름이 지정 / 생성 된 확인란을 클릭하는 방법은 무엇입니까?

분류에서Dev

워드 프레스에서 사용자 정의 필드를 사용하여 프런트 엔드 사용자를위한 프로필 편집 페이지를 만드는 방법은 무엇입니까?

분류에서Dev

AutoHotKey를 사용하여 각도 입력 필드를 성공적으로 채우는 방법은 무엇입니까? 값을 설정할 수 있지만 아무것도 입력되지 않았다는 메시지가 표시됩니다.

분류에서Dev

각도 통화 필터를 사용하여 통화 기본값과 다른 로케일을 지정하는 방법은 무엇입니까?

분류에서Dev

각도의 html 페이지에서 특수 문자를 기반으로 파일 이름을 필터링하는 방법은 무엇입니까?

분류에서Dev

도커 로그를 사용하여 특정 문자열의 각 일치 후 로그 수를 지정하는 방법은 무엇입니까?

분류에서Dev

Django에서 사용자 지정 영역으로 위치를 필터링하는 방법은 무엇입니까?

분류에서Dev

RabbitMQ를 사용하여 사용자 당 속도 제한으로 여러 API 호출을 만드는 방법은 무엇입니까?

분류에서Dev

MongoDB에서 필드 이름을 키로 사용하여 사용자 지정 개체를 출력으로 만드는 방법은 무엇입니까?

분류에서Dev

각도 재질 또는 각도를 사용하여 이미지에 주어진 바와 같이 하단 막대를 만드는 방법은 무엇입니까?

분류에서Dev

상자에 내용을 입력하지 않았지만 커서가 여전히 각도 js를 사용하여 상자에있을 때 빨간색 입력 상자를 오류로 만드는 방법은 무엇입니까?

분류에서Dev

UIBezierPath 또는 다른 방법을 사용하여 Objective-C에서 프로그래밍 방식으로 아래와 같이 사용자 지정 사각형을 만드는 방법은 무엇입니까?

분류에서Dev

Pandas (Python3)에서 특정 값을 열로 사용하여 사용자 지정 데이터 프레임을 만드는 방법은 무엇입니까?

분류에서Dev

각도기 + 각도를 사용하여 반복기 인덱스 / 키를 얻는 방법은 무엇입니까?

분류에서Dev

사용자 정의 Wordpress 플러그인이 .po 및 .mo 파일을 인식하도록 만드는 방법은 무엇입니까?

분류에서Dev

여러 사용자가 하나의 애플리케이션 인스턴스 만 사용하도록 만드는 방법은 무엇입니까?

분류에서Dev

MongoDB 집계 파이프 라인에 여러 연산자를 사용하는 방법은 무엇입니까?

분류에서Dev

ffmpeg를 사용하여 정확한 프레임으로 자르는 방법은 무엇입니까?

분류에서Dev

여러 사용자의 로그인 페이지 코드를 더 간단하게 만드는 방법은 무엇입니까?

분류에서Dev

None으로 설정된 경우 사전에서 여러 키를 확인하는 방법은 무엇입니까?

분류에서Dev

Jenkins 파이프 라인을 사용하여 Docker 이미지를 빌드하는 방법은 무엇입니까?

분류에서Dev

의도를 사용하여 파일 경로를 전달하지만 다른 활동에서 각 파일의 경로를 얻는 방법은 무엇입니까?

분류에서Dev

Django_jinja 앱으로 Jinja2 사용자 지정 필터를 만드는 방법은 무엇입니까?

분류에서Dev

경로를 재사용하는 사용자 지정 지시문을 만드는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    각도를 사용하여 확인한 확인란을 계산하는 방법은 무엇입니까?

  2. 2

    사용자 지정 각도 지시문을 사용하여 스크립트를로드하는 방법은 무엇입니까?

  3. 3

    여러 * ngIf를 && 연산자와 결합하고 각도로 사용하는 방법은 무엇입니까?

  4. 4

    Derby 데이터베이스와 함께 jsf를 사용하여 Google지도에서 다각형을 동적으로 만드는 방법은 무엇입니까?

  5. 5

    Node Express를 사용하여 각 사용자에 대한 동적 하위 도메인을 만드는 방법은 무엇입니까?

  6. 6

    Selenium IDE를 사용하여 동적으로 이름이 지정 / 생성 된 확인란을 클릭하는 방법은 무엇입니까?

  7. 7

    워드 프레스에서 사용자 정의 필드를 사용하여 프런트 엔드 사용자를위한 프로필 편집 페이지를 만드는 방법은 무엇입니까?

  8. 8

    AutoHotKey를 사용하여 각도 입력 필드를 성공적으로 채우는 방법은 무엇입니까? 값을 설정할 수 있지만 아무것도 입력되지 않았다는 메시지가 표시됩니다.

  9. 9

    각도 통화 필터를 사용하여 통화 기본값과 다른 로케일을 지정하는 방법은 무엇입니까?

  10. 10

    각도의 html 페이지에서 특수 문자를 기반으로 파일 이름을 필터링하는 방법은 무엇입니까?

  11. 11

    도커 로그를 사용하여 특정 문자열의 각 일치 후 로그 수를 지정하는 방법은 무엇입니까?

  12. 12

    Django에서 사용자 지정 영역으로 위치를 필터링하는 방법은 무엇입니까?

  13. 13

    RabbitMQ를 사용하여 사용자 당 속도 제한으로 여러 API 호출을 만드는 방법은 무엇입니까?

  14. 14

    MongoDB에서 필드 이름을 키로 사용하여 사용자 지정 개체를 출력으로 만드는 방법은 무엇입니까?

  15. 15

    각도 재질 또는 각도를 사용하여 이미지에 주어진 바와 같이 하단 막대를 만드는 방법은 무엇입니까?

  16. 16

    상자에 내용을 입력하지 않았지만 커서가 여전히 각도 js를 사용하여 상자에있을 때 빨간색 입력 상자를 오류로 만드는 방법은 무엇입니까?

  17. 17

    UIBezierPath 또는 다른 방법을 사용하여 Objective-C에서 프로그래밍 방식으로 아래와 같이 사용자 지정 사각형을 만드는 방법은 무엇입니까?

  18. 18

    Pandas (Python3)에서 특정 값을 열로 사용하여 사용자 지정 데이터 프레임을 만드는 방법은 무엇입니까?

  19. 19

    각도기 + 각도를 사용하여 반복기 인덱스 / 키를 얻는 방법은 무엇입니까?

  20. 20

    사용자 정의 Wordpress 플러그인이 .po 및 .mo 파일을 인식하도록 만드는 방법은 무엇입니까?

  21. 21

    여러 사용자가 하나의 애플리케이션 인스턴스 만 사용하도록 만드는 방법은 무엇입니까?

  22. 22

    MongoDB 집계 파이프 라인에 여러 연산자를 사용하는 방법은 무엇입니까?

  23. 23

    ffmpeg를 사용하여 정확한 프레임으로 자르는 방법은 무엇입니까?

  24. 24

    여러 사용자의 로그인 페이지 코드를 더 간단하게 만드는 방법은 무엇입니까?

  25. 25

    None으로 설정된 경우 사전에서 여러 키를 확인하는 방법은 무엇입니까?

  26. 26

    Jenkins 파이프 라인을 사용하여 Docker 이미지를 빌드하는 방법은 무엇입니까?

  27. 27

    의도를 사용하여 파일 경로를 전달하지만 다른 활동에서 각 파일의 경로를 얻는 방법은 무엇입니까?

  28. 28

    Django_jinja 앱으로 Jinja2 사용자 지정 필터를 만드는 방법은 무엇입니까?

  29. 29

    경로를 재사용하는 사용자 지정 지시문을 만드는 방법은 무엇입니까?

뜨겁다태그

보관