2017-11-09 5 views
2

MatDatePicker 액세스 할 수MatDatepickerFilter - 필터 함수는 다음과 같이 정의 된 필터 클래스 변수

<mat-form-field class="example-full-width"> 
    <input matInput [matDatepickerFilter]="myFilter" [matDatepicker]="picker" placeholder="Choose a date"> 
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle> 
    <mat-datepicker #picker></mat-datepicker> 
</mat-form-field> 

export class DatepickerFilterExample { 
    someDateToBlock: number = 3; 
    myFilter = (d: Date): boolean => { 
    const day = d.getDay(); 
    // THIS FUNCTION CANNOT ACCESS THE VARIABLE 'someDateToBlock' 
    return day !== 0 && day !== 6; 
    } 
} 

내가 필터 함수에서 변수 someDateToBlock (또는 다른)에 액세스하고자. 이 가능성을 높이기위한 해결 방법이 있습니까? 이이 작동

+0

이 시도 했습니까 .omeDateToBlock ?? –

답변

0

, 여기 plunkr 링크입니다 : https://plnkr.co/edit/oRGfxLSrn6GdfRhYO1rr?p=preview

export class DatepickerOverviewExample { 

    someDateToBlock: number = 3; 
    myFilter = (d: Date): boolean => { 
    const day = d.getDay(); 
    // THIS FUNCTION CANNOT ACCESS THE VARIABLE 'someDateToBlock' 
    return this.someDateToBlock; 
    } 

} 

내가 경고 (this.someDateToBlock)에서 확인할 또한

+0

Hmmmn .. 필터 함수에 대한이 정의를 일찍 시도 했어야했습니다. 내 필터 정의는 원래 'dateFilter (d : date) {' 'this'에 대한 액세스 권한입니다. 작동하지 않습니다 ... 내 제시된 코드에서 ... 불일치에 대해 유감입니다. – ill

1

저도 같은 문제를 가지고,이없는 물질 날짜 선택처럼 보인다 필터 기능의 「this」에의 액세스. 나 변경 :

[matDatepickerFilter]="myFilterFunction" 

[matDatepickerFilter]="myFilterFunction.bind(this)" 

에 트릭을했다.

관련 문제