Browse Source

Save scroll position

Dan Kaplun 10 years ago
parent
commit
005ade573d

+ 7 - 1
dist/extensions/angular/bsTable.js

@@ -5,6 +5,7 @@
       restrict: 'EA',
       scope: {options: '='},
       link: function ($s, $el) {
+        var scroll;
         var options;
         $el
           .on('sort.bs.table', function (evt, sortName, sortOrder) {
@@ -19,7 +20,11 @@
           });
         $s.$watch('options', function (newOptions) {
           if (!newOptions) return;
-          if (options) $el.bootstrapTable('destroy');
+
+          if (options) {
+            scroll = $el.bootstrapTable('getScrollPosition');
+            $el.bootstrapTable('destroy');
+          }
           options = $.extend(options ? {
             sortName: options.sortName,
             sortOrder: options.sortOrder,
@@ -27,6 +32,7 @@
             pageSize: options.pageSize
           } : {}, newOptions);
           $el.bootstrapTable(options);
+          if (scroll) $el.bootstrapTable('scrollTo', scroll);
         }, true);
         $(window).resize(function () {
           if (options) $el.bootstrapTable('resetView');

File diff suppressed because it is too large
+ 1 - 1
dist/extensions/angular/bsTable.min.js


+ 7 - 1
docs/dist/extensions/angular/bsTable.js

@@ -5,6 +5,7 @@
       restrict: 'EA',
       scope: {options: '='},
       link: function ($s, $el) {
+        var scroll;
         var options;
         $el
           .on('sort.bs.table', function (evt, sortName, sortOrder) {
@@ -19,7 +20,11 @@
           });
         $s.$watch('options', function (newOptions) {
           if (!newOptions) return;
-          if (options) $el.bootstrapTable('destroy');
+
+          if (options) {
+            scroll = $el.bootstrapTable('getScrollPosition');
+            $el.bootstrapTable('destroy');
+          }
           options = $.extend(options ? {
             sortName: options.sortName,
             sortOrder: options.sortOrder,
@@ -27,6 +32,7 @@
             pageSize: options.pageSize
           } : {}, newOptions);
           $el.bootstrapTable(options);
+          if (scroll) $el.bootstrapTable('scrollTo', scroll);
         }, true);
         $(window).resize(function () {
           if (options) $el.bootstrapTable('resetView');

File diff suppressed because it is too large
+ 1 - 1
docs/dist/extensions/angular/bsTable.min.js


+ 7 - 1
src/extensions/angular/bsTable.js

@@ -5,6 +5,7 @@
       restrict: 'EA',
       scope: {options: '='},
       link: function ($s, $el) {
+        var scroll;
         var options;
         $el
           .on('sort.bs.table', function (evt, sortName, sortOrder) {
@@ -19,7 +20,11 @@
           });
         $s.$watch('options', function (newOptions) {
           if (!newOptions) return;
-          if (options) $el.bootstrapTable('destroy');
+
+          if (options) {
+            scroll = $el.bootstrapTable('getScrollPosition');
+            $el.bootstrapTable('destroy');
+          }
           options = $.extend(options ? {
             sortName: options.sortName,
             sortOrder: options.sortOrder,
@@ -27,6 +32,7 @@
             pageSize: options.pageSize
           } : {}, newOptions);
           $el.bootstrapTable(options);
+          if (scroll) $el.bootstrapTable('scrollTo', scroll);
         }, true);
         $(window).resize(function () {
           if (options) $el.bootstrapTable('resetView');