Selaa lähdekoodia

Pagination: emit current-change after current page is manually updated (#11012)

杨奕 7 vuotta sitten
vanhempi
commit
7409be8ce1
2 muutettua tiedostoa jossa 33 lisäystä ja 0 poistoa
  1. 1 0
      packages/pagination/src/pagination.js
  2. 32 0
      test/unit/specs/pagination.spec.js

+ 1 - 0
packages/pagination/src/pagination.js

@@ -408,6 +408,7 @@ export default {
         } else {
           this.$emit('update:currentPage', newVal);
         }
+        this.lastEmittedPage = -1;
       }
     },
 

+ 32 - 0
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: `