From 7409be8ce1164cb8e5a80a2d8db1c4f51dc21580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=A5=95?= <Leopoldthecoder@users.noreply.github.com> Date: Fri, 4 May 2018 15:32:23 +0800 Subject: [PATCH] Pagination: emit current-change after current page is manually updated (#11012) --- packages/pagination/src/pagination.js | 1 + test/unit/specs/pagination.spec.js | 32 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/packages/pagination/src/pagination.js b/packages/pagination/src/pagination.js index 5b443090f..49f8ab417 100644 --- a/packages/pagination/src/pagination.js +++ b/packages/pagination/src/pagination.js @@ -408,6 +408,7 @@ export default { } else { this.$emit('update:currentPage', newVal); } + this.lastEmittedPage = -1; } }, diff --git a/test/unit/specs/pagination.spec.js b/test/unit/specs/pagination.spec.js index d3424f60f..8858f8719 100644 --- a/test/unit/specs/pagination.spec.js +++ b/test/unit/specs/pagination.spec.js @@ -306,6 +306,38 @@ describe('Pagination', () => { }, 50); }); + it('event:current-change after current page is manually updated', (done) => { + vm = createVue({ + template: ` + <el-pagination + :total="15" + :current-page.sync="currentPage" + @current-change="emitCount++" /> + `, + + data() { + return { + emitCount: 0, + currentPage: 1 + }; + } + }); + const next = vm.$el.querySelector('button.btn-next'); + next.click(); + setTimeout(() => { + expect(vm.emitCount).to.equal(1); + vm.currentPage = 1; + setTimeout(() => { + expect(vm.emitCount).to.equal(1); + next.click(); + setTimeout(() => { + expect(vm.emitCount).to.equal(2); + done(); + }, 50); + }, 50); + }, 50); + }); + it('event:size-change', done => { vm = createVue({ template: `