diff --git a/components/slider/slider.component.ts b/components/slider/slider.component.ts index 75a19fd41c..7947461dbd 100644 --- a/components/slider/slider.component.ts +++ b/components/slider/slider.component.ts @@ -259,6 +259,7 @@ export class NzSliderComponent implements ControlValueAccessor, OnInit, OnChange ? (this.value as number[])[this.activeValueIndex!] + step : (this.value as number) + step; this.setActiveValue(ensureNumberInRange(newVal, this.nzMin, this.nzMax)); + this.nzOnAfterChange.emit(this.getValue(true)); } onHandleFocusIn(index: number): void { diff --git a/components/slider/slider.spec.ts b/components/slider/slider.spec.ts index e9f0888278..c8c6255d1d 100644 --- a/components/slider/slider.spec.ts +++ b/components/slider/slider.spec.ts @@ -918,6 +918,16 @@ describe('nz-slider', () => { expect(sliderInstance.value).toEqual([2, 99]); }); + it('should trigger nzOnAfterChange', () => { + const onChangeSpy = jasmine.createSpy('slider onChange'); + + sliderInstance.nzOnAfterChange.subscribe(onChangeSpy); + dispatchKeyboardEvent(sliderNativeElement, 'keydown', RIGHT_ARROW); + fixture.detectChanges(); + + expect(onChangeSpy).toHaveBeenCalledTimes(1); + }); + it('should work for range slider when activeValueIndex is undefined', () => { testComponent.range = true; fixture.detectChanges();