From b7cc148c594fd106c9b0599d715e38a0355c3e17 Mon Sep 17 00:00:00 2001 From: VTHINKXIE Date: Wed, 6 Dec 2017 19:35:04 +0800 Subject: [PATCH] feat(module:select): support nzScrollToBottom event (#678) close #676 --- src/components/select/nz-select.component.ts | 20 ++++++++++++++++++- .../nz-demo-select/nz-demo-select.html | 6 ++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/components/select/nz-select.component.ts b/src/components/select/nz-select.component.ts index cc06a5afcf3..e852bee5607 100644 --- a/src/components/select/nz-select.component.ts +++ b/src/components/select/nz-select.component.ts @@ -130,7 +130,7 @@ import { NzLocaleService } from '../locale/index';
-
    +
    • = new EventEmitter(); @Output() nzOpenChange: EventEmitter = new EventEmitter(); + @Output() nzScrollToBottom: EventEmitter = new EventEmitter(); @Input() nzFilter = true; @Input() nzMaxMultiple = Infinity; @@ -309,6 +310,11 @@ export class NzSelectComponent implements OnInit, AfterContentInit, AfterContent this._isOpen = isOpen; this.nzOpenChange.emit(this._isOpen); this.setClassMap(); + if (this._isOpen) { + setTimeout(() => { + this.checkDropDownScroll(); + }); + } } get nzOpen(): boolean { @@ -716,6 +722,18 @@ export class NzSelectComponent implements OnInit, AfterContentInit, AfterContent this.nzDisabled = isDisabled; } + dropDownScroll(ul) { + if (ul && (ul.scrollHeight - ul.scrollTop === ul.clientHeight)) { + this.nzScrollToBottom.emit(true); + } + } + + checkDropDownScroll() { + if (this.dropdownUl && (this.dropdownUl.nativeElement.scrollHeight === this.dropdownUl.nativeElement.clientHeight)) { + this.nzScrollToBottom.emit(true); + } + } + constructor(private _elementRef: ElementRef, private _renderer: Renderer2, private _locale: NzLocaleService) { this._el = this._elementRef.nativeElement; } diff --git a/src/showcase/nz-demo-select/nz-demo-select.html b/src/showcase/nz-demo-select/nz-demo-select.html index 9e195396b48..369d4bcb08a 100644 --- a/src/showcase/nz-demo-select/nz-demo-select.html +++ b/src/showcase/nz-demo-select/nz-demo-select.html @@ -134,6 +134,12 @@

      nz-select attribute - + + nzScrollToBottom + 下拉菜单滚动到底部回调,可用于作为动态加载的触发条件 + - + - + nzPlaceHolder 选择框默认文字