Smart Table нумерация страниц с st-pipe не работает

0

Мне нужна помощь с моим кодом разбивки на страницы (http://plnkr.co/edit/Jv12fcBzm3lvZFqHqDJm?p=preview)

Мои данные огромны (> 1000K строк). Я хочу сделать запрос только для видимых записей (50 строк на страницу). Я запрашиваю вызов службы REST каждый раз, когда пользователь меняет сортировку или изменение страницы.

В моем коде я заменил $ http.post() на $ timeout, чтобы упростить пример.

  angular.module('app',['smart-table'])
  .controller('mainCtrl',['Resource', function (service) {
    var ctrl = this;
    this.rowCollection = [];
    this.totalMatched = 0;
    this.totalExecutionTime = 0;
    this.paginationStart = 0;

    this.callServer = function callServer(tableState) {
      ctrl.isLoading = true;
      var pagination = tableState.pagination;
      console.log(pagination.number);
      var start = pagination.start || 0;
      var number = pagination.number || 5;

      service.getPage(start, number, tableState).then(function (result) {
         var tstamp = new Date().getTime();
        console.log('Requesting page: '+start+', '+number+','+tstamp);
        ctrl.rowCollection = result.data.items;
        ctrl.totalMatched = result.data.total;
        ctrl.paginationStart = start;
        tableState.pagination.numberOfPages = result.numberOfPages;//set the number of pages so the pagination can update
        ctrl.isLoading = false;
      });
    };
  }])
  .factory('Resource', ['$q', '$filter', '$timeout', '$http', function ($q, $filter, $timeout, $http)
  {
    function getPage(start, number, params) {

        var deferred = $q.defer();
     $timeout(function () {
          deferred.resolve({
            data:  {total:8000, items:[{message:'foo',messagetime:'2016-01-01'},{message:'foobis',messagetime:'2016-02-02'}]},
            numberOfPages: Math.ceil(1000 / number)
          });
        }, 1500);


        return deferred.promise;
      }

      return {
        getPage: getPage
      };
  }
  ]);

Что я делаю неправильно? Цените любую помощь.

Теги:
pagination
smart-table

1 ответ

1

В script.js вы должны заменить:

ctrl.rowCollection = result.data.items;     

от

ctrl.displayedCollection = result.data.items;

Это потому, что в вашем теге таблицы вы использовали элемент st-table = "main.displayedCollection" и ng-repeat = "в main.displayedCollection".

  • 0
    Спасибо, я заметил, что мне не нужно использовать st-safe-src вместе с st-pipe. Я удалил st-safe-src, и он начал работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню