bsTable.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // JavaScript source code
  2. (function () {
  3. angular.module('bsTable', []).directive('bsTableControl', function () {
  4. return {
  5. restrict: 'EA',
  6. scope: {options: '='},
  7. link: function ($s, $el) {
  8. var options;
  9. $el
  10. .on('sort.bs.table', function (evt, sortName, sortOrder) {
  11. if (!options) return;
  12. options.sortName = sortName;
  13. options.sortOrder = sortOrder;
  14. })
  15. .on('page-change.bs.table', function (evt, pageNumber, pageSize) {
  16. if (!options) return;
  17. options.pageNumber = pageNumber;
  18. options.pageSize = pageSize;
  19. });
  20. $s.$watch('options', function (newOptions) {
  21. if (!newOptions) return;
  22. if (options) $el.bootstrapTable('destroy');
  23. options = $.extend(options ? {
  24. sortName: options.sortName,
  25. sortOrder: options.sortOrder,
  26. pageNumber: options.pageNumber,
  27. pageSize: options.pageSize
  28. } : {}, newOptions);
  29. $el.bootstrapTable(options);
  30. }, true);
  31. $(window).resize(function () {
  32. if (options) $el.bootstrapTable('resetView');
  33. })
  34. }
  35. };
  36. })
  37. })();